diff --git a/Wire.go b/Wire.go index 5452d6c..6ec0542 100644 --- a/Wire.go +++ b/Wire.go @@ -21,16 +21,18 @@ package main import ( "github.com/devtron-labs/central-api/api" + "github.com/devtron-labs/central-api/api/currency" util "github.com/devtron-labs/central-api/client" - "github.com/devtron-labs/central-api/internal/logger" "github.com/devtron-labs/central-api/pkg" + currencyPkg "github.com/devtron-labs/central-api/pkg/currency" blob_storage "github.com/devtron-labs/common-lib/blob-storage" + "github.com/devtron-labs/common-lib/utils" "github.com/google/wire" ) func InitializeApp() (*App, error) { wire.Build( - logger.NewSugardLogger, + utils.NewSugardLogger, //sql.PgSqlWireSet, //releaseNote.NewReleaseNoteRepositoryImpl, //wire.Bind(new(releaseNote.ReleaseNoteRepository), new(*releaseNote.ReleaseNoteRepositoryImpl)), @@ -52,6 +54,15 @@ func InitializeApp() (*App, error) { pkg.NewCiBuildMetadataServiceImpl, wire.Bind(new(pkg.CiBuildMetadataService), new(*pkg.CiBuildMetadataServiceImpl)), + // Currency service dependencies + currencyPkg.NewCurrencyConfig, + currencyPkg.NewServiceImpl, + wire.Bind(new(currencyPkg.Service), new(*currencyPkg.ServiceImpl)), + currency.NewCurrencyRestHandlerImpl, + wire.Bind(new(currency.CurrencyRestHandler), new(*currency.CurrencyRestHandlerImpl)), + currency.NewRouter, + wire.Bind(new(currency.Router), new(*currency.RouterImpl)), + // S3 Upload Service pkg.NewS3UploadServiceImpl, wire.Bind(new(pkg.S3UploadService), new(*pkg.S3UploadServiceImpl)), diff --git a/api/RestHandler.go b/api/RestHandler.go index 9292ae0..968ad9f 100644 --- a/api/RestHandler.go +++ b/api/RestHandler.go @@ -17,6 +17,7 @@ package api import ( + "encoding/json" "github.com/Masterminds/semver" "github.com/devtron-labs/central-api/api/handler" util "github.com/devtron-labs/central-api/client" @@ -258,13 +259,13 @@ func isVersionNewer(v1, v2 string) bool { // SubmitFeedback handles the feedback submission endpoint func (impl *RestHandlerImpl) SubmitFeedback(w http.ResponseWriter, r *http.Request) { impl.logger.Info("received feedback submission request") - setupResponse(&w, r) + handler.SetupCorsOriginHeader(&w, r) // Read request body body, err := ioutil.ReadAll(r.Body) if err != nil { impl.logger.Errorw("error reading request body", "err", err) - impl.WriteJsonResp(w, err, "Failed to read request body", http.StatusBadRequest) + handler.WriteJsonResp(w, err, "Failed to read request body", http.StatusBadRequest) return } defer r.Body.Close() @@ -274,7 +275,7 @@ func (impl *RestHandlerImpl) SubmitFeedback(w http.ResponseWriter, r *http.Reque err = json.Unmarshal(body, &feedbackData) if err != nil { impl.logger.Errorw("error unmarshalling feedback request", "err", err) - impl.WriteJsonResp(w, err, "Invalid request format", http.StatusBadRequest) + handler.WriteJsonResp(w, err, "Invalid request format", http.StatusBadRequest) return } @@ -287,7 +288,7 @@ func (impl *RestHandlerImpl) SubmitFeedback(w http.ResponseWriter, r *http.Reque err = impl.feedbackService.SubmitFeedback(&feedbackData) if err != nil { impl.logger.Errorw("error submitting feedback", "err", err, "ucid", feedbackData.UCID) - impl.WriteJsonResp(w, err, "Failed to submit feedback", http.StatusInternalServerError) + handler.WriteJsonResp(w, err, "Failed to submit feedback", http.StatusInternalServerError) return } @@ -299,5 +300,5 @@ func (impl *RestHandlerImpl) SubmitFeedback(w http.ResponseWriter, r *http.Reque "ucid": feedbackData.UCID, "s3Url": feedbackData.FullConversationURL, } - impl.WriteJsonResp(w, nil, response, http.StatusOK) + handler.WriteJsonResp(w, nil, response, http.StatusOK) } diff --git a/wire_gen.go b/wire_gen.go index 823b719..01ec9c8 100644 --- a/wire_gen.go +++ b/wire_gen.go @@ -8,16 +8,18 @@ package main import ( "github.com/devtron-labs/central-api/api" + currency2 "github.com/devtron-labs/central-api/api/currency" "github.com/devtron-labs/central-api/client" - "github.com/devtron-labs/central-api/internal/logger" "github.com/devtron-labs/central-api/pkg" + "github.com/devtron-labs/central-api/pkg/currency" "github.com/devtron-labs/common-lib/blob-storage" + "github.com/devtron-labs/common-lib/utils" ) // Injectors from Wire.go: func InitializeApp() (*App, error) { - sugaredLogger, err := logger.NewSugardLogger() + sugaredLogger, err := utils.NewSugardLogger() if err != nil { return nil, err } @@ -51,7 +53,14 @@ func InitializeApp() (*App, error) { googleSheetsServiceImpl := pkg.NewGoogleSheetsServiceImpl(sugaredLogger, googleSheetsClient) feedbackServiceImpl := pkg.NewFeedbackServiceImpl(sugaredLogger, s3UploadServiceImpl, googleSheetsServiceImpl) restHandlerImpl := api.NewRestHandlerImpl(sugaredLogger, releaseNoteServiceImpl, webhookSecretValidatorImpl, gitHubClient, ciBuildMetadataServiceImpl, feedbackServiceImpl) - muxRouter := api.NewMuxRouter(sugaredLogger, restHandlerImpl) + currencyConfig, err := currency.NewCurrencyConfig(sugaredLogger) + if err != nil { + return nil, err + } + serviceImpl := currency.NewServiceImpl(currencyConfig, sugaredLogger) + currencyRestHandlerImpl := currency2.NewCurrencyRestHandlerImpl(sugaredLogger, serviceImpl) + routerImpl := currency2.NewRouter(sugaredLogger, currencyRestHandlerImpl) + muxRouter := api.NewMuxRouter(sugaredLogger, restHandlerImpl, routerImpl) app := NewApp(muxRouter, sugaredLogger) return app, nil }