feat: Update repositories to use specific create and update types for Activity and User
This commit is contained in:
parent
17cb4505be
commit
f567d086ec
@ -9,7 +9,7 @@ import (
|
||||
|
||||
type ActivityRepository interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.Activity, error)
|
||||
Create(ctx context.Context, activity *entities.Activity) error
|
||||
Update(ctx context.Context, activity *entities.Activity) error
|
||||
Create(ctx context.Context, activity *entities.ActivityCreate) error
|
||||
Update(ctx context.Context, activity *entities.ActivityUpdate) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
|
||||
type UserRepository interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.User, error)
|
||||
Create(ctx context.Context, user *entities.User) error
|
||||
Update(ctx context.Context, user *entities.User) error
|
||||
Create(ctx context.Context, user *entities.UserCreate) error
|
||||
Update(ctx context.Context, user *entities.UserUpdate) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
GetByUsername(ctx context.Context, username string) (*entities.User, error)
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"github.com/timetracker/backend/internal/domain/repositories"
|
||||
"github.com/timetracker/backend/internal/domain/persistence"
|
||||
"github.com/timetracker/backend/internal/infrastructure/persistence/db/ds"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
@ -20,17 +20,17 @@ type DatabaseConfig struct {
|
||||
SSLMode string
|
||||
}
|
||||
|
||||
// DatasourceContainer enthält alle Repository-Instanzen
|
||||
// DatasourceContainer enthält alle Datasource-Instanzen
|
||||
type DatasourceContainer struct {
|
||||
ActivityDatasource repositories.ActivityRepository
|
||||
CompanyDatasource repositories.CompanyRepository
|
||||
CustomerDatasource repositories.CustomerRepository
|
||||
ProjectDatasource repositories.ProjectRepository
|
||||
TimeEntryDatasource repositories.TimeEntryRepository
|
||||
UserDatasource repositories.UserRepository
|
||||
ActivityDatasource persistence.ActivityDatasource
|
||||
CompanyDatasource persistence.CompanyDatasource
|
||||
CustomerDatasource persistence.CustomerDatasource
|
||||
ProjectDatasource persistence.ProjectDatasource
|
||||
TimeEntryDatasource persistence.TimeEntryDatasource
|
||||
UserDatasource persistence.UserDatasource
|
||||
}
|
||||
|
||||
// NewDatasourceContainer erstellt und initialisiert alle Repository-Instanzen
|
||||
// NewDatasourceContainer erstellt und initialisiert alle Datasource-Instanzen
|
||||
func NewDatasourceContainer(config DatabaseConfig) (*DatasourceContainer, error) {
|
||||
// Erstelle DSN (Data Source Name) für die Datenbankverbindung
|
||||
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)
|
||||
}
|
||||
|
||||
// Erstelle alle Repository-Instanzen
|
||||
// Erstelle alle Datasource-Instanzen
|
||||
return &DatasourceContainer{
|
||||
ActivityDatasource: ds.NewActivityDatasource(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
|
||||
|
||||
// Beispiel (müsste angepasst werden):
|
||||
// activityDS, ok := r.ActivityRepository.(*ds.ActivityDatasource)
|
||||
// activityDS, ok := r.ActivityDatasource.(*ds.ActivityDatasource)
|
||||
// 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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user