From 0f62a291c38f5fbccfcb8c5cfead8ed8782a7ca8 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Tue, 29 Oct 2024 11:02:31 +0100 Subject: [PATCH] feat(backend): analytics - common service builder with object storage --- backend/cmd/analytics/main.go | 1 + backend/pkg/common/builder.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/backend/cmd/analytics/main.go b/backend/cmd/analytics/main.go index 98e5ae0bf..a8c224f6f 100644 --- a/backend/cmd/analytics/main.go +++ b/backend/cmd/analytics/main.go @@ -34,6 +34,7 @@ func main() { services, err := analytics.NewServiceBuilder(log). WithDatabase(pgConn). WithJWTSecret(cfg.JWTSecret, cfg.JWTSpotSecret). + WithObjectStorage(&cfg.ObjectsConfig). Build() if err != nil { diff --git a/backend/pkg/common/builder.go b/backend/pkg/common/builder.go index 74a7900a8..0f35c1982 100644 --- a/backend/pkg/common/builder.go +++ b/backend/pkg/common/builder.go @@ -2,11 +2,13 @@ package common import ( "errors" + objConfig "openreplay/backend/internal/config/objectstorage" "openreplay/backend/pkg/common/api/auth" "openreplay/backend/pkg/db/postgres/pool" "openreplay/backend/pkg/flakeid" "openreplay/backend/pkg/logger" "openreplay/backend/pkg/objectstorage" + "openreplay/backend/pkg/objectstorage/store" ) // ServicesBuilder struct to hold service components @@ -35,8 +37,12 @@ func (b *ServicesBuilder) WithFlaker(flaker *flakeid.Flaker) *ServicesBuilder { } // WithObjectStorage sets the Object Storage component -func (b *ServicesBuilder) WithObjectStorage(objStorage objectstorage.ObjectStorage) *ServicesBuilder { - b.objStorage = objStorage +func (b *ServicesBuilder) WithObjectStorage(config *objConfig.ObjectsConfig) *ServicesBuilder { + objStore, err := store.NewStore(config) + if err != nil { + return nil + } + b.objStorage = objStore return b } @@ -70,7 +76,6 @@ func (b *ServicesBuilder) WithJWTSecret(jwtSecret string, extraSecret ...string) // Build finalizes the service setup and returns an instance of ServicesBuilder with all components func (b *ServicesBuilder) Build() (*ServicesBuilder, error) { // Initialize default components if they aren't provided - // Check if database pool is provided if b.pgconn == nil { return nil, errors.New("database connection pool is required")