✨ Upgrade Go version to 1.23.0 and update dependencies. Introduce new application structure with Clean Architecture principles, including message processing, NATS integration, and PostgreSQL repository. Add configuration management using Koanf and structured logging with Zap. Remove legacy GraphQL integration and related files. Implement dependency injection with Google Wire.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
//go:build wireinject
|
||||
// +build wireinject
|
||||
|
||||
package di
|
||||
|
||||
import (
|
||||
"caatsm/internal/adapter/parser"
|
||||
"caatsm/internal/app"
|
||||
"caatsm/internal/infra/config"
|
||||
"caatsm/internal/infra/log"
|
||||
"caatsm/internal/infra/nats"
|
||||
"caatsm/internal/infra/postgres"
|
||||
|
||||
"github.com/google/wire"
|
||||
)
|
||||
|
||||
// InitializeApp initializes the application with all dependencies
|
||||
func InitializeApp() (*app.MessageProcessor, *nats.Consumer, error) {
|
||||
wire.Build(
|
||||
// Config
|
||||
config.ProvideConfig,
|
||||
|
||||
// Logger
|
||||
log.ProvideLogger,
|
||||
|
||||
// Database
|
||||
postgres.ProvideDB,
|
||||
postgres.ProvideRepository,
|
||||
|
||||
// NATS
|
||||
nats.ProvideJetStream,
|
||||
nats.ProvidePublisher,
|
||||
|
||||
// Parser
|
||||
parser.ProvideParser,
|
||||
|
||||
// App
|
||||
app.NewMessageProcessor,
|
||||
|
||||
// Consumer
|
||||
nats.ProvideConsumer,
|
||||
)
|
||||
return nil, nil, nil
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// Code generated by Wire. DO NOT EDIT.
|
||||
|
||||
//go:build !wireinject
|
||||
// +build !wireinject
|
||||
|
||||
package di
|
||||
|
||||
import (
|
||||
"caatsm/internal/adapter/parser"
|
||||
"caatsm/internal/app"
|
||||
"caatsm/internal/infra/config"
|
||||
"caatsm/internal/infra/log"
|
||||
"caatsm/internal/infra/nats"
|
||||
"caatsm/internal/infra/postgres"
|
||||
)
|
||||
|
||||
// InitializeApp initializes the application with all dependencies
|
||||
func InitializeApp() (*app.MessageProcessor, *nats.Consumer, error) {
|
||||
configConfig, err := config.ProvideConfig()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
zapLogger, err := log.ProvideLogger(configConfig)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
pgxpoolPool, err := postgres.ProvideDB(configConfig)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
adapterRepository, err := postgres.ProvideRepository(pgxpoolPool, zapLogger)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
natsJetStreamContext, err := nats.ProvideJetStream(configConfig, zapLogger)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
adapterPublisher, err := nats.ProvidePublisher(natsJetStreamContext, configConfig, zapLogger)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
parserParser := parser.ProvideParser()
|
||||
appMessageProcessor := app.NewMessageProcessor(parserParser, adapterRepository, adapterPublisher, zapLogger)
|
||||
natsConsumer, err := nats.ProvideConsumer(natsJetStreamContext, appMessageProcessor, configConfig, zapLogger)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
return appMessageProcessor, natsConsumer, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user