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 {
|
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
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user