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:
Varnit Goyal
2024-07-29 15:46:17 +05:30
committed by GitHub
parent f20af81520
commit 9b4768c0e6
10 changed files with 188 additions and 169 deletions

View 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),
}
}

View File

@@ -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
}