From 55efbbb88ed8e049dc731c3815dde32d36df169a Mon Sep 17 00:00:00 2001 From: Acho Arnold Date: Fri, 8 Dec 2023 17:05:10 +0200 Subject: [PATCH] Rolling back changes --- api/pkg/di/container.go | 75 ++++++++----------- .../gorm_heartbeat_monitor_repository.go | 24 ++---- .../repositories/gorm_heartbeat_repository.go | 13 +--- api/pkg/repositories/repository.go | 8 +- web/store/index.ts | 4 +- 5 files changed, 50 insertions(+), 74 deletions(-) diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go index 396ba08a..edbfebbc 100644 --- a/api/pkg/di/container.go +++ b/api/pkg/di/container.go @@ -74,7 +74,7 @@ import ( type Container struct { projectID string db *gorm.DB - yugaByteDB *gorm.DB + dedicatedDB *gorm.DB version string app *fiber.App eventDispatcher *services.EventDispatcher @@ -209,47 +209,38 @@ func (container *Container) GormLogger() gormLogger.Interface { ) } -// YugaByteDB creates an instance of gorm.DB if it has not been created already -func (container *Container) YugaByteDB() (db *gorm.DB) { +// DedicatedDB creates an instance of gorm.DB if it has not been created already +func (container *Container) DedicatedDB() (db *gorm.DB) { container.logger.Debug(fmt.Sprintf("creating %T", db)) - if container.yugaByteDB != nil { - return container.yugaByteDB + if container.dedicatedDB != nil { + return container.dedicatedDB } - // - //config := &gorm.Config{} - //if isLocal() { - // config = &gorm.Config{Logger: container.GormLogger()} - //} - // - //db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL_YUGABYTE")), config) - //if err != nil { - // container.logger.Fatal(err) - //} - // - //if err = db.Use(tracing.NewPlugin()); err != nil { - // container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin")) - //} - // - //sql, err := db.DB() - //if err != nil { - // container.logger.Fatal(err) - //} - // - //sql.SetMaxOpenConns(7) - //sql.SetMaxIdleConns(3) - //sql.SetConnMaxLifetime(time.Minute * 10) - // - //container.logger.Debug(fmt.Sprintf("Running migrations for yugabyte [%T]", db)) - //if err = db.AutoMigrate(&entities.Heartbeat{}); err != nil { - // container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.Heartbeat{}))) - //} - // - //if err = db.AutoMigrate(&entities.HeartbeatMonitor{}); err != nil { - // container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.HeartbeatMonitor{}))) - //} - // - //container.yugaByteDB = db - return container.yugaByteDB + + config := &gorm.Config{} + if isLocal() { + config = &gorm.Config{Logger: container.GormLogger()} + } + + db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL_DEDICATED")), config) + if err != nil { + container.logger.Fatal(err) + } + + if err = db.Use(tracing.NewPlugin()); err != nil { + container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin")) + } + + container.logger.Debug(fmt.Sprintf("Running migrations for yugabyte [%T]", db)) + if err = db.AutoMigrate(&entities.Heartbeat{}); err != nil { + container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.Heartbeat{}))) + } + + if err = db.AutoMigrate(&entities.HeartbeatMonitor{}); err != nil { + container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.HeartbeatMonitor{}))) + } + + container.dedicatedDB = db + return container.dedicatedDB } // DB creates an instance of gorm.DB if it has not been created already @@ -706,7 +697,7 @@ func (container *Container) HeartbeatMonitorRepository() (repository repositorie return repositories.NewGormHeartbeatMonitorRepository( container.Logger(), container.Tracer(), - container.YugaByteDB(), + container.DedicatedDB(), ) } @@ -1303,7 +1294,7 @@ func (container *Container) HeartbeatRepository() repositories.HeartbeatReposito return repositories.NewGormHeartbeatRepository( container.Logger(), container.Tracer(), - container.YugaByteDB(), + container.DedicatedDB(), ) } diff --git a/api/pkg/repositories/gorm_heartbeat_monitor_repository.go b/api/pkg/repositories/gorm_heartbeat_monitor_repository.go index 8fc73252..ce9509e6 100644 --- a/api/pkg/repositories/gorm_heartbeat_monitor_repository.go +++ b/api/pkg/repositories/gorm_heartbeat_monitor_repository.go @@ -27,9 +27,7 @@ func (repository *gormHeartbeatMonitorRepository) UpdateQueueID(ctx context.Cont ctx, span := repository.tracer.Start(ctx) defer span.End() - return stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() err := repository.db. @@ -50,9 +48,7 @@ func (repository *gormHeartbeatMonitorRepository) Delete(ctx context.Context, us ctx, span := repository.tracer.Start(ctx) defer span.End() - return stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() err := repository.db.WithContext(ctx). @@ -85,9 +81,7 @@ func (repository *gormHeartbeatMonitorRepository) Index(ctx context.Context, use ctx, span := repository.tracer.Start(ctx) defer span.End() - return nil, stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() query := repository.db.WithContext(ctx).Where("user_id = ?", userID).Where("owner = ?", owner) @@ -105,9 +99,7 @@ func (repository *gormHeartbeatMonitorRepository) Store(ctx context.Context, hea ctx, span := repository.tracer.Start(ctx) defer span.End() - return stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() if err := repository.db.WithContext(ctx).Create(heartbeatMonitor).Error; err != nil { @@ -123,9 +115,7 @@ func (repository *gormHeartbeatMonitorRepository) Load(ctx context.Context, user ctx, span := repository.tracer.Start(ctx) defer span.End() - return nil, stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() phone := new(entities.HeartbeatMonitor) @@ -152,9 +142,7 @@ func (repository *gormHeartbeatMonitorRepository) Exists(ctx context.Context, us ctx, span := repository.tracer.Start(ctx) defer span.End() - return false, stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() var exists bool diff --git a/api/pkg/repositories/gorm_heartbeat_repository.go b/api/pkg/repositories/gorm_heartbeat_repository.go index a1601d6b..160bdeea 100644 --- a/api/pkg/repositories/gorm_heartbeat_repository.go +++ b/api/pkg/repositories/gorm_heartbeat_repository.go @@ -3,7 +3,6 @@ package repositories import ( "context" "fmt" - "time" "github.com/pkg/errors" @@ -37,9 +36,7 @@ func (repository *gormHeartbeatRepository) Last(ctx context.Context, userID enti ctx, span := repository.tracer.Start(ctx) defer span.End() - return nil, stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() heartbeat := new(entities.Heartbeat) @@ -66,9 +63,7 @@ func (repository *gormHeartbeatRepository) Index(ctx context.Context, userID ent ctx, span := repository.tracer.Start(ctx) defer span.End() - return nil, stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() query := repository.db.WithContext(ctx).Where("user_id = ?", userID).Where("owner = ?", owner) @@ -91,9 +86,7 @@ func (repository *gormHeartbeatRepository) Store(ctx context.Context, heartbeat ctx, span := repository.tracer.Start(ctx) defer span.End() - return stacktrace.NewError("not implemented") - - ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + ctx, cancel := context.WithTimeout(ctx, dbOperationDuration) defer cancel() if err := repository.db.WithContext(ctx).Create(heartbeat).Error; err != nil { diff --git a/api/pkg/repositories/repository.go b/api/pkg/repositories/repository.go index d72a5609..5f1fca22 100644 --- a/api/pkg/repositories/repository.go +++ b/api/pkg/repositories/repository.go @@ -1,6 +1,10 @@ package repositories -import "github.com/palantir/stacktrace" +import ( + "time" + + "github.com/palantir/stacktrace" +) // IndexParams parameters for indexing a database table type IndexParams struct { @@ -12,4 +16,6 @@ type IndexParams struct { const ( // ErrCodeNotFound is thrown when an entity does not exist in storage ErrCodeNotFound = stacktrace.ErrorCode(1000) + + dbOperationDuration = 1 * time.Second ) diff --git a/web/store/index.ts b/web/store/index.ts index 2f6d6083..621a6a34 100644 --- a/web/store/index.ts +++ b/web/store/index.ts @@ -303,9 +303,7 @@ export const actions = { }, }) - try { - await context.dispatch('getHeartbeat') - } catch (e) {} + await context.dispatch('getHeartbeat') context.commit('setThreads', response.data.data) },