Tp 55555/integrate document service client (#7)
* TP-55555 | document client and kafka integration * TP-55555 | introduce service concept refactor code * TP-55555 | s3 and kafka producer integrated and tested * TP-55555 | s3 and kafka producer integrated and tested * TP-55555 | fixed kafka for subsequent request * TP-55555 | fixed kafka for subsequent request
This commit is contained in:
26
internal/client/aws/aws.go
Normal file
26
internal/client/aws/aws.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"cybertron/configs"
|
||||
"github.com/aws/aws-sdk-go-v2/config"
|
||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||
"log"
|
||||
)
|
||||
|
||||
type Actions struct {
|
||||
S3Client *s3.Client
|
||||
S3PresignClient *s3.PresignClient
|
||||
}
|
||||
|
||||
func NewS3client(clientConfig configs.AwsConfig) *Actions {
|
||||
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion(clientConfig.Region))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
svc := s3.NewFromConfig(cfg)
|
||||
return &Actions{
|
||||
S3Client: svc,
|
||||
S3PresignClient: s3.NewPresignClient(svc),
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,13 @@ package dependencies
|
||||
|
||||
import (
|
||||
"cybertron/configs"
|
||||
"cybertron/internal/client/aws"
|
||||
"cybertron/internal/client/document"
|
||||
"cybertron/internal/database"
|
||||
"cybertron/internal/transport/handler"
|
||||
"cybertron/pkg/db"
|
||||
httpclient "cybertron/pkg/httpClient"
|
||||
"cybertron/pkg/kafka/producer"
|
||||
"cybertron/pkg/log"
|
||||
"cybertron/service"
|
||||
"go.uber.org/zap"
|
||||
@@ -24,6 +26,7 @@ type Dependencies struct {
|
||||
type Service struct {
|
||||
DocumentService *document.HttpClient
|
||||
ProjectService *service.ProjectCreator
|
||||
S3Client *aws.Actions
|
||||
// Add your service here
|
||||
}
|
||||
|
||||
@@ -40,8 +43,11 @@ func InitDependencies() *Dependencies {
|
||||
repositories := initRepositories(dbClient)
|
||||
logger := log.Log
|
||||
httpClient := httpclient.NewHttpClient(*configs.GetHttpConfig())
|
||||
s3Client := aws.NewS3client(*configs.GetAWSConfig())
|
||||
kafkaProducer := initKafkaProducer()
|
||||
|
||||
documentServiceClient := document.NewDocumentServiceHttpClient(httpClient, logger, configs.GetDocumentServiceHttpClientConfigs())
|
||||
projectServiceClient := service.NewProjectCreator(logger, dbClient)
|
||||
projectServiceClient := service.NewProjectCreator(logger, dbClient, s3Client, kafkaProducer)
|
||||
services := initServices(documentServiceClient, projectServiceClient)
|
||||
handlers := initHandlers(projectServiceClient)
|
||||
return &Dependencies{
|
||||
@@ -72,3 +78,8 @@ func initHandlers(projectService *service.ProjectCreator) *Handler {
|
||||
ProjectHandler: projectHandler,
|
||||
}
|
||||
}
|
||||
|
||||
func initKafkaProducer() producer.KProducer {
|
||||
kafkaProducer := producer.NewKProducer(configs.GetEnv(), configs.GetKafkaConfig())
|
||||
return kafkaProducer
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user