diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-25 10:56:48 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-25 10:56:48 -0600 |
| commit | 33981e04bebe39c16d3bbb3af84c8772b00102fd (patch) | |
| tree | 8f9b6f38684c519cafdbda647bb4b3f42fe872d9 | |
| parent | e16a3ae2430b6186bad92fee75c4610f119770ff (diff) | |
refactor: move Repository interface to domain
| -rw-r--r-- | app/app.go | 3 | ||||
| -rw-r--r-- | app/controllers/sparkles/controller.go | 5 | ||||
| -rw-r--r-- | app/init.go | 6 | ||||
| -rw-r--r-- | pkg/db/in_memory_repository.go | 2 | ||||
| -rw-r--r-- | pkg/db/repository.go | 9 | ||||
| -rw-r--r-- | pkg/domain/repository.go | 7 | ||||
| -rw-r--r-- | pkg/web/middleware/user.go | 3 |
7 files changed, 15 insertions, 20 deletions
@@ -11,7 +11,6 @@ import ( "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/health" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sessions" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web" @@ -36,7 +35,7 @@ func New(rootDir string) http.Handler { logger := ioc.MustResolve[*zerolog.Logger](ioc.Default) oidc := ioc.MustResolve[*oidc.OpenID](ioc.Default) - users := ioc.MustResolve[db.Repository[*domain.User]](ioc.Default) + users := ioc.MustResolve[domain.Repository[*domain.User]](ioc.Default) chain := middleware.IDToken(oidc)(middleware.User(users)(mux)) return log.HTTP(logger)(chain) diff --git a/app/controllers/sparkles/controller.go b/app/controllers/sparkles/controller.go index 04eee12..bda7151 100644 --- a/app/controllers/sparkles/controller.go +++ b/app/controllers/sparkles/controller.go @@ -7,16 +7,15 @@ import ( "github.com/xlgmokha/x/pkg/mapper" "github.com/xlgmokha/x/pkg/serde" "github.com/xlgmokha/x/pkg/x" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web/middleware" ) type Controller struct { - db db.Repository[*domain.Sparkle] + db domain.Repository[*domain.Sparkle] } -func New(db db.Repository[*domain.Sparkle]) *Controller { +func New(db domain.Repository[*domain.Sparkle]) *Controller { return &Controller{db: db} } diff --git a/app/init.go b/app/init.go index f889fd9..3d1cbd0 100644 --- a/app/init.go +++ b/app/init.go @@ -24,10 +24,10 @@ func init() { ioc.RegisterSingleton[*zerolog.Logger](ioc.Default, func() *zerolog.Logger { return log.New(os.Stdout, log.Fields{}) }) - ioc.RegisterSingleton[db.Repository[*domain.Sparkle]](ioc.Default, func() db.Repository[*domain.Sparkle] { + ioc.RegisterSingleton[domain.Repository[*domain.Sparkle]](ioc.Default, func() domain.Repository[*domain.Sparkle] { return db.NewRepository[*domain.Sparkle]() }) - ioc.RegisterSingleton[db.Repository[*domain.User]](ioc.Default, func() db.Repository[*domain.User] { + ioc.RegisterSingleton[domain.Repository[*domain.User]](ioc.Default, func() domain.Repository[*domain.User] { return db.NewRepository[*domain.User]() }) ioc.RegisterSingleton[*http.ServeMux](ioc.Default, func() *http.ServeMux { @@ -37,7 +37,7 @@ func init() { return dashboard.New() }) ioc.Register[*sparkles.Controller](ioc.Default, func() *sparkles.Controller { - return sparkles.New(ioc.MustResolve[db.Repository[*domain.Sparkle]](ioc.Default)) + return sparkles.New(ioc.MustResolve[domain.Repository[*domain.Sparkle]](ioc.Default)) }) ioc.Register[*health.Controller](ioc.Default, func() *health.Controller { return health.New() diff --git a/pkg/db/in_memory_repository.go b/pkg/db/in_memory_repository.go index 56ca766..3e183fd 100644 --- a/pkg/db/in_memory_repository.go +++ b/pkg/db/in_memory_repository.go @@ -10,7 +10,7 @@ type inMemoryRepository[T domain.Entity] struct { items []T } -func NewRepository[T domain.Entity]() Repository[T] { +func NewRepository[T domain.Entity]() domain.Repository[T] { return &inMemoryRepository[T]{ items: []T{}, } diff --git a/pkg/db/repository.go b/pkg/db/repository.go deleted file mode 100644 index 0ebe216..0000000 --- a/pkg/db/repository.go +++ /dev/null @@ -1,9 +0,0 @@ -package db - -import "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain" - -type Repository[T domain.Entity] interface { - All() []T - Find(domain.ID) T - Save(T) error -} diff --git a/pkg/domain/repository.go b/pkg/domain/repository.go new file mode 100644 index 0000000..fb7b6da --- /dev/null +++ b/pkg/domain/repository.go @@ -0,0 +1,7 @@ +package domain + +type Repository[T Entity] interface { + All() []T + Find(ID) T + Save(T) error +} diff --git a/pkg/web/middleware/user.go b/pkg/web/middleware/user.go index 68d2daa..1e46187 100644 --- a/pkg/web/middleware/user.go +++ b/pkg/web/middleware/user.go @@ -6,13 +6,12 @@ import ( "github.com/xlgmokha/x/pkg/log" "github.com/xlgmokha/x/pkg/mapper" "github.com/xlgmokha/x/pkg/x" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/key" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc" ) -func User(db db.Repository[*domain.User]) func(http.Handler) http.Handler { +func User(db domain.Repository[*domain.User]) func(http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { idToken := key.IDToken.From(r.Context()) |
