feat: Update repositories to use specific create and update types for Activity and User

This commit is contained in:
Jean Jacques Avril 2025-03-10 07:31:37 +00:00
parent 17cb4505be
commit f567d086ec
3 changed files with 16 additions and 16 deletions

View File

@ -9,7 +9,7 @@ import (
type ActivityRepository interface { type ActivityRepository interface {
Get(ctx context.Context, id ulid.ULID) (*entities.Activity, error) Get(ctx context.Context, id ulid.ULID) (*entities.Activity, error)
Create(ctx context.Context, activity *entities.Activity) error Create(ctx context.Context, activity *entities.ActivityCreate) error
Update(ctx context.Context, activity *entities.Activity) error Update(ctx context.Context, activity *entities.ActivityUpdate) error
Delete(ctx context.Context, id ulid.ULID) error Delete(ctx context.Context, id ulid.ULID) error
} }

View File

@ -9,8 +9,8 @@ import (
type UserRepository interface { type UserRepository interface {
Get(ctx context.Context, id ulid.ULID) (*entities.User, error) Get(ctx context.Context, id ulid.ULID) (*entities.User, error)
Create(ctx context.Context, user *entities.User) error Create(ctx context.Context, user *entities.UserCreate) error
Update(ctx context.Context, user *entities.User) error Update(ctx context.Context, user *entities.UserUpdate) error
Delete(ctx context.Context, id ulid.ULID) error Delete(ctx context.Context, id ulid.ULID) error
GetByUsername(ctx context.Context, username string) (*entities.User, error) GetByUsername(ctx context.Context, username string) (*entities.User, error)
} }

View File

@ -4,7 +4,7 @@ import (
"database/sql" "database/sql"
"fmt" "fmt"
"github.com/timetracker/backend/internal/domain/repositories" "github.com/timetracker/backend/internal/domain/persistence"
"github.com/timetracker/backend/internal/infrastructure/persistence/db/ds" "github.com/timetracker/backend/internal/infrastructure/persistence/db/ds"
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
"gorm.io/gorm" "gorm.io/gorm"
@ -20,17 +20,17 @@ type DatabaseConfig struct {
SSLMode string SSLMode string
} }
// DatasourceContainer enthält alle Repository-Instanzen // DatasourceContainer enthält alle Datasource-Instanzen
type DatasourceContainer struct { type DatasourceContainer struct {
ActivityDatasource repositories.ActivityRepository ActivityDatasource persistence.ActivityDatasource
CompanyDatasource repositories.CompanyRepository CompanyDatasource persistence.CompanyDatasource
CustomerDatasource repositories.CustomerRepository CustomerDatasource persistence.CustomerDatasource
ProjectDatasource repositories.ProjectRepository ProjectDatasource persistence.ProjectDatasource
TimeEntryDatasource repositories.TimeEntryRepository TimeEntryDatasource persistence.TimeEntryDatasource
UserDatasource repositories.UserRepository UserDatasource persistence.UserDatasource
} }
// NewDatasourceContainer erstellt und initialisiert alle Repository-Instanzen // NewDatasourceContainer erstellt und initialisiert alle Datasource-Instanzen
func NewDatasourceContainer(config DatabaseConfig) (*DatasourceContainer, error) { func NewDatasourceContainer(config DatabaseConfig) (*DatasourceContainer, error) {
// Erstelle DSN (Data Source Name) für die Datenbankverbindung // Erstelle DSN (Data Source Name) für die Datenbankverbindung
dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s",
@ -54,7 +54,7 @@ func NewDatasourceContainer(config DatabaseConfig) (*DatasourceContainer, error)
return nil, fmt.Errorf("fehler beim Initialisieren von GORM: %w", err) return nil, fmt.Errorf("fehler beim Initialisieren von GORM: %w", err)
} }
// Erstelle alle Repository-Instanzen // Erstelle alle Datasource-Instanzen
return &DatasourceContainer{ return &DatasourceContainer{
ActivityDatasource: ds.NewActivityDatasource(gormDB), ActivityDatasource: ds.NewActivityDatasource(gormDB),
CompanyDatasource: ds.NewCompanyDatasource(gormDB), CompanyDatasource: ds.NewCompanyDatasource(gormDB),
@ -88,9 +88,9 @@ func (r *DatasourceContainer) getGormDB() (*gorm.DB, error) {
// Hier müsste angepasst werden, wie Sie Zugriff auf die GORM-DB bekommen // Hier müsste angepasst werden, wie Sie Zugriff auf die GORM-DB bekommen
// Beispiel (müsste angepasst werden): // Beispiel (müsste angepasst werden):
// activityDS, ok := r.ActivityRepository.(*ds.ActivityDatasource) // activityDS, ok := r.ActivityDatasource.(*ds.ActivityDatasource)
// if !ok { // if !ok {
// return nil, fmt.Errorf("Konnte GORM-DB nicht aus ActivityRepository extrahieren") // return nil, fmt.Errorf("Konnte GORM-DB nicht aus ActivityDatasource extrahieren")
// } // }
// return activityDS.GetDB(), nil // return activityDS.GetDB(), nil