From 1ef015cd05d24581a2a84f2e8681911438fe60e2 Mon Sep 17 00:00:00 2001 From: Piotr Biernat Date: Thu, 23 Oct 2025 08:00:36 +0200 Subject: [PATCH] Moved infra/ to internal/ sub-dir --- src/internal/chronos/cache_permissions_job.go | 28 +++++++++++++++++++ src/internal/chronos/chronos.go | 23 ++++++++------- .../chronos/jobs/cache_permissions_job.go | 16 ----------- .../infra}/repository/interface.go | 0 .../infra}/repository/role_repository.go | 0 .../repository/url_access_repository.go | 0 .../infra}/repository/user_repository.go | 0 src/internal/server/access_handler.go | 8 +++--- src/internal/server/login_handler.go | 8 +++--- src/internal/server/refresh_handler.go | 4 +-- src/internal/server/register_handler.go | 4 +-- src/internal/server/server.go | 2 +- src/internal/service/auth.go | 6 ++-- src/internal/service/guard.go | 15 +++++----- src/internal/ui/register_action.go | 4 +-- 15 files changed, 64 insertions(+), 54 deletions(-) create mode 100644 src/internal/chronos/cache_permissions_job.go delete mode 100644 src/internal/chronos/jobs/cache_permissions_job.go rename src/{domain => internal/infra}/repository/interface.go (100%) rename src/{domain => internal/infra}/repository/role_repository.go (100%) rename src/{domain => internal/infra}/repository/url_access_repository.go (100%) rename src/{domain => internal/infra}/repository/user_repository.go (100%) diff --git a/src/internal/chronos/cache_permissions_job.go b/src/internal/chronos/cache_permissions_job.go new file mode 100644 index 0000000..b8099a7 --- /dev/null +++ b/src/internal/chronos/cache_permissions_job.go @@ -0,0 +1,28 @@ +package chronos + +import ( + "fmt" + "time" + + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/service" +) + +type CachePermissionsJob struct { + sch *Chronos +} + +func NewCachePermissionsJob(sch *Chronos) CachePermissionsJob { + return CachePermissionsJob{sch: sch} +} + +func (j CachePermissionsJob) Run() { + userRepo := repository.NewUserRepository(j.sch.GetDatabase()) + roleRepo := repository.NewRoleRepository(j.sch.GetDatabase()) + urlRepo := repository.NewURLAccessRepository(j.sch.GetDatabase()) + authSrv := service.NewAuthService(userRepo, j.sch.GetCache()) + guardSrv := service.NewGuardService(authSrv, j.sch.GetCache(), userRepo, roleRepo, urlRepo) + + guardSrv.CacheAllPermissions() + fmt.Println(time.Now().String() + " permission successfully cached") +} diff --git a/src/internal/chronos/chronos.go b/src/internal/chronos/chronos.go index c4465b6..0c840d3 100644 --- a/src/internal/chronos/chronos.go +++ b/src/internal/chronos/chronos.go @@ -5,7 +5,6 @@ import ( "time" "git.ego.freeddns.org/egommerce/identity-service/common" - "git.ego.freeddns.org/egommerce/identity-service/internal/chronos/jobs" "github.com/go-redis/redis/v8" "github.com/jackc/pgx/v5/pgxpool" @@ -23,10 +22,10 @@ func New(c *common.Config) *Chronos { } func (c *Chronos) Start() error { - job := jobs.NewCachePermissionsJob() - s := clockwerk.New() - s.Every(30 * time.Second).Do(job) - s.Start() + job := NewCachePermissionsJob(c) + sch := clockwerk.New() + sch.Every(30 * time.Second).Do(job) + sch.Start() return nil } @@ -35,18 +34,18 @@ func (c *Chronos) RegisterHandler(name string, fn func() any) { c.handlers[name] = fn() } -func (s *Chronos) OnShutdown() { +func (c *Chronos) OnShutdown() { log.Println("Chronos is going down...") - // s.GetDatabase().Close() + // c.GetDatabase().Close() } -// Plugin helper funcitons +// Plugin helper funcitons - refactor needed cause funcs are duplcated in server.go // TODO: move functions below to some common place -func (s *Chronos) GetCache() *redis.Client { - return (s.handlers["cache"]).(*redis.Client) +func (c *Chronos) GetCache() *redis.Client { + return (c.handlers["cache"]).(*redis.Client) } -func (s *Chronos) GetDatabase() *pgxpool.Pool { - return (s.handlers["database"]).(*pgxpool.Pool) +func (c *Chronos) GetDatabase() *pgxpool.Pool { + return (c.handlers["database"]).(*pgxpool.Pool) } diff --git a/src/internal/chronos/jobs/cache_permissions_job.go b/src/internal/chronos/jobs/cache_permissions_job.go deleted file mode 100644 index 2f8daa4..0000000 --- a/src/internal/chronos/jobs/cache_permissions_job.go +++ /dev/null @@ -1,16 +0,0 @@ -package jobs - -import ( - "fmt" - "time" -) - -type CachePermissionsJob struct{} - -func NewCachePermissionsJob() CachePermissionsJob { - return CachePermissionsJob{} -} - -func (j CachePermissionsJob) Run() { - fmt.Println(time.Now().String() + " Every 30 seconds") -} diff --git a/src/domain/repository/interface.go b/src/internal/infra/repository/interface.go similarity index 100% rename from src/domain/repository/interface.go rename to src/internal/infra/repository/interface.go diff --git a/src/domain/repository/role_repository.go b/src/internal/infra/repository/role_repository.go similarity index 100% rename from src/domain/repository/role_repository.go rename to src/internal/infra/repository/role_repository.go diff --git a/src/domain/repository/url_access_repository.go b/src/internal/infra/repository/url_access_repository.go similarity index 100% rename from src/domain/repository/url_access_repository.go rename to src/internal/infra/repository/url_access_repository.go diff --git a/src/domain/repository/user_repository.go b/src/internal/infra/repository/user_repository.go similarity index 100% rename from src/domain/repository/user_repository.go rename to src/internal/infra/repository/user_repository.go diff --git a/src/internal/server/access_handler.go b/src/internal/server/access_handler.go index a61e7af..5de7337 100644 --- a/src/internal/server/access_handler.go +++ b/src/internal/server/access_handler.go @@ -2,16 +2,16 @@ package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" - repo "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "git.ego.freeddns.org/egommerce/identity-service/internal/ui" "github.com/gofiber/fiber/v2" ) func (s *Server) AccessHandlerFn(c *fiber.Ctx) error { - userRepo := repo.NewUserRepository(s.GetDatabase()) - roleRepo := repo.NewRoleRepository(s.GetDatabase()) - urlRepo := repo.NewURLAccessRepository(s.GetDatabase()) + userRepo := repository.NewUserRepository(s.GetDatabase()) + roleRepo := repository.NewRoleRepository(s.GetDatabase()) + urlRepo := repository.NewURLAccessRepository(s.GetDatabase()) authSrv := service.NewAuthService(userRepo, s.GetCache()) guardSrv := service.NewGuardService(authSrv, s.GetCache(), userRepo, roleRepo, urlRepo) diff --git a/src/internal/server/login_handler.go b/src/internal/server/login_handler.go index 7b3254d..359e9df 100644 --- a/src/internal/server/login_handler.go +++ b/src/internal/server/login_handler.go @@ -2,7 +2,7 @@ package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "git.ego.freeddns.org/egommerce/identity-service/internal/ui" @@ -15,9 +15,9 @@ func (s *Server) LoginHandlerFn(c *fiber.Ctx) error { return s.Error(c, fiber.StatusBadRequest, "Error parsing input") } - userRepo := domain.NewUserRepository(s.GetDatabase()) - roleRepo := domain.NewRoleRepository(s.GetDatabase()) - urlRepo := domain.NewURLAccessRepository(s.GetDatabase()) + userRepo := repository.NewUserRepository(s.GetDatabase()) + roleRepo := repository.NewRoleRepository(s.GetDatabase()) + urlRepo := repository.NewURLAccessRepository(s.GetDatabase()) authSrv := service.NewAuthService(userRepo, s.GetCache()) guardSrv := service.NewGuardService(authSrv, s.GetCache(), userRepo, roleRepo, urlRepo) diff --git a/src/internal/server/refresh_handler.go b/src/internal/server/refresh_handler.go index 47eacac..77df657 100644 --- a/src/internal/server/refresh_handler.go +++ b/src/internal/server/refresh_handler.go @@ -2,7 +2,7 @@ package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "git.ego.freeddns.org/egommerce/identity-service/internal/ui" @@ -15,7 +15,7 @@ func (s *Server) RefreshHandlerFn(c *fiber.Ctx) error { return s.Error(c, fiber.StatusBadRequest, "Error parsing headers") } - repo := domain.NewUserRepository(s.GetDatabase()) + repo := repository.NewUserRepository(s.GetDatabase()) authSrv := service.NewAuthService(repo, s.GetCache()) token, err := ui.NewRefreshTokenActionUI(authSrv).Execute(header) diff --git a/src/internal/server/register_handler.go b/src/internal/server/register_handler.go index 5863bed..f14e763 100644 --- a/src/internal/server/register_handler.go +++ b/src/internal/server/register_handler.go @@ -2,7 +2,7 @@ package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/ui" "github.com/gofiber/fiber/v2" @@ -14,7 +14,7 @@ func (s *Server) RegisterHandlerFn(c *fiber.Ctx) error { return s.Error(c, fiber.StatusBadRequest, "Error parsing input") } - repo := domain.NewUserRepository(s.GetDatabase()) + repo := repository.NewUserRepository(s.GetDatabase()) id, err := ui.NewRegisterActionUI(repo, s.GetCache()).Execute(data) if err != nil { diff --git a/src/internal/server/server.go b/src/internal/server/server.go index ea4d5a0..20d5077 100644 --- a/src/internal/server/server.go +++ b/src/internal/server/server.go @@ -83,7 +83,7 @@ func (s *Server) Error(c *fiber.Ctx, code int, msg string) error { return c.Status(code).JSON(dto.ErrorResponseDTO{Error: msg}) } -// Plugin helper funcitons +// Plugin helper funcitons - refactor needed cause funcs are duplcated in chronos.go func (s *Server) GetCache() *redis.Client { return (s.handlers["cache"]).(*redis.Client) } diff --git a/src/internal/service/auth.go b/src/internal/service/auth.go index 77e9dfb..35fe948 100644 --- a/src/internal/service/auth.go +++ b/src/internal/service/auth.go @@ -9,7 +9,7 @@ import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "github.com/go-redis/redis/v8" ) @@ -29,11 +29,11 @@ func init() { } type AuthService struct { - userRepo *domain.UserRepository + userRepo *repository.UserRepository cache *redis.Client } -func NewAuthService(userRepo *domain.UserRepository, cache *redis.Client) *AuthService { +func NewAuthService(userRepo *repository.UserRepository, cache *redis.Client) *AuthService { return &AuthService{ userRepo: userRepo, cache: cache, diff --git a/src/internal/service/guard.go b/src/internal/service/guard.go index fc04bff..28108d2 100644 --- a/src/internal/service/guard.go +++ b/src/internal/service/guard.go @@ -9,19 +9,19 @@ import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "github.com/go-redis/redis/v8" ) type GuardService struct { authSrv *AuthService cache *redis.Client - userRepo *domain.UserRepository - roleRepo *domain.RoleRepository - urlRepo *domain.URLAccessRepository + userRepo *repository.UserRepository + roleRepo *repository.RoleRepository + urlRepo *repository.URLAccessRepository } -func NewGuardService(authSrv *AuthService, cache *redis.Client, userRepo *domain.UserRepository, roleRepo *domain.RoleRepository, urlRepo *domain.URLAccessRepository) *GuardService { +func NewGuardService(authSrv *AuthService, cache *redis.Client, userRepo *repository.UserRepository, roleRepo *repository.RoleRepository, urlRepo *repository.URLAccessRepository) *GuardService { return &GuardService{ authSrv: authSrv, cache: cache, @@ -49,9 +49,6 @@ func (g *GuardService) CheckUserPermissions(authHeader *dto.AuthorizationHeaderD return nil } -// Move below functions to a worker and fire-up it in the CRONJOB -// func (g *GuardService) fetchURLAccessFromCache() {} - func (g *GuardService) CacheAllPermissions() error { urls, err := g.urlRepo.FindAll() if err != nil { @@ -81,3 +78,5 @@ func (g *GuardService) CacheAllPermissions() error { return nil } + +// func (g *GuardService) fetchURLAccessFromCache() {} diff --git a/src/internal/ui/register_action.go b/src/internal/ui/register_action.go index 18a23d4..87dad1d 100644 --- a/src/internal/ui/register_action.go +++ b/src/internal/ui/register_action.go @@ -2,7 +2,7 @@ package ui import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" - domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" + "git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "github.com/go-redis/redis/v8" @@ -12,7 +12,7 @@ type RegisterActionUI struct { authSrv *service.AuthService } -func NewRegisterActionUI(repo *domain.UserRepository, cache *redis.Client) *RegisterActionUI { +func NewRegisterActionUI(repo *repository.UserRepository, cache *redis.Client) *RegisterActionUI { return &RegisterActionUI{ authSrv: service.NewAuthService(repo, cache), }