Documentation
¶
Index ¶
- Variables
- func NewEchoServer(id *identity.Identity, svc *service.Service) *echo.Echo
- func NewIdentity(cfg *config.Config, logger *zap.Logger) (*identity.Identity, error)
- func NewLogger(cfg *config.Config) (*zap.Logger, error)
- func NewMailingService(deploymentCfg config.DeploymentConfig, mailerCfg config.MailerConfig, ...) (mailer.Mailer, error)
- func NewPiriClientProvider(id *identity.Identity, logger *zap.Logger) piriclient.Provider
- func NewProvisioningService(id *identity.Identity, consumerStore consumer.Store, ...) *provisioning.Service
- func RegisterServerLifecycle(lc fx.Lifecycle, e *echo.Echo, cfg *config.Config, logger *zap.Logger, ...)
- type Configs
- type IndexerClientResult
Constants ¶
This section is empty.
Variables ¶
View Source
var AppModule = func(cfg *config.Config) fx.Option { opts := []fx.Option{ fx.Supply(cfg), ConfigModule, LoggerModule, IdentityModule, ServicesModule, ClientsModule, service.Module, handlers.Module, ServerModule, } if cfg.Deployment.InMemoryStores { opts = append(opts, memory.Module) } else { opts = append(opts, aws.Module) } return fx.Options(opts...) }
AppModule aggregates all application modules.
View Source
var ClientsModule = fx.Module("clients", fx.Provide(NewIndexerClient), fx.Provide(NewPiriClientProvider), )
ClientsModule provides external service clients.
View Source
var ConfigModule = fx.Module("config", fx.Provide(ProvideConfigs), )
View Source
var IdentityModule = fx.Module("identity", fx.Provide(NewIdentity), )
IdentityModule provides the service identity.
LoggerModule provides the zap logger.
View Source
var ServerModule = fx.Module("server", fx.Provide(NewEchoServer), fx.Invoke(RegisterServerLifecycle), )
ServerModule provides the HTTP server with lifecycle management.
View Source
var ServicesModule = fx.Module("services", fx.Provide(NewMailingService), fx.Provide(NewProvisioningService), fx.Provide(billing.NewService), fx.Provide(routing.NewService), )
Functions ¶
func NewEchoServer ¶
NewEchoServer creates and configures the Echo HTTP server.
func NewIdentity ¶
NewIdentity creates an identity from the configured key file or generates one.
func NewMailingService ¶ added in v0.0.6
func NewMailingService(deploymentCfg config.DeploymentConfig, mailerCfg config.MailerConfig, logger *zap.Logger) (mailer.Mailer, error)
func NewPiriClientProvider ¶ added in v0.0.6
func NewProvisioningService ¶ added in v0.0.6
func NewProvisioningService( id *identity.Identity, consumerStore consumer.Store, subscriptionStore subscription.Store, ) *provisioning.Service
Types ¶
type Configs ¶ added in v0.0.6
type Configs struct {
fx.Out
Deployment config.DeploymentConfig
Server config.ServerConfig
Identity config.IdentityConfig
Indexer config.IndexerConfig
DynamoDB config.DynamoDBConfig
S3 config.S3Config
Log config.LogConfig
Mailer config.MailerConfig
}
func ProvideConfigs ¶ added in v0.0.6
ProvideConfigs provides the individual fields of the config.
type IndexerClientResult ¶
type IndexerClientResult struct {
fx.Out
Client *indexerclient.Client `optional:"true"`
}
IndexerClientResult wraps the optional indexer client. Using fx.Out with optional tag allows this provider to return nil when the indexer is not configured.
func NewIndexerClient ¶
func NewIndexerClient( cfg *config.Config, id *identity.Identity, logger *zap.Logger, ) IndexerClientResult
NewIndexerClient creates an indexer client if configured.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.