diff --git a/app/module/banners/controller/banners.controller.go b/app/module/banners/controller/banners.controller.go index c2d4860..8883093 100644 --- a/app/module/banners/controller/banners.controller.go +++ b/app/module/banners/controller/banners.controller.go @@ -1,18 +1,21 @@ package controller import ( + "jaecoo-be/app/middleware" "jaecoo-be/app/module/banners/request" "jaecoo-be/app/module/banners/service" "jaecoo-be/utils/paginator" "strconv" "github.com/gofiber/fiber/v2" + "github.com/rs/zerolog" utilRes "jaecoo-be/utils/response" ) type bannersController struct { bannersService service.BannersService + Log zerolog.Logger } @@ -61,7 +64,14 @@ func (_i *bannersController) All(c *fiber.Ctx) error { req := reqContext.ToParamRequest() req.Pagination = paginate - bannersData, paging, err := _i.bannersService.GetAll(req) + // ✅ ambil ClientId dari middleware + clientId := middleware.GetClientID(c) + + // ✅ ambil Authorization token (kalau dibutuhkan) + + _i.Log.Info().Interface("clientId", clientId).Msg("") + + bannersData, paging, err := _i.bannersService.GetAll(clientId,req) if err != nil { return err } @@ -74,6 +84,7 @@ func (_i *bannersController) All(c *fiber.Ctx) error { }) } + // Show Banner // @Summary Get Banner by ID // @Description API for getting Banner by ID diff --git a/app/module/banners/repository/banners.repository.go b/app/module/banners/repository/banners.repository.go index 047aa57..a281b61 100644 --- a/app/module/banners/repository/banners.repository.go +++ b/app/module/banners/repository/banners.repository.go @@ -7,6 +7,7 @@ import ( "jaecoo-be/utils/paginator" "strings" + "github.com/google/uuid" "github.com/rs/zerolog" ) @@ -16,7 +17,7 @@ type bannersRepository struct { } type BannersRepository interface { - GetAll(req request.BannersQueryRequest) (banners []*entity.Banners, paging paginator.Pagination, err error) + GetAll(clientId *uuid.UUID, req request.BannersQueryRequest) (banners []*entity.Banners, paging paginator.Pagination, err error) FindOne(id uint) (banner *entity.Banners, err error) Create(banner *entity.Banners) (bannerReturn *entity.Banners, err error) Update(id uint, banner *entity.Banners) (err error) @@ -34,11 +35,15 @@ func NewBannersRepository(db *database.Database, log zerolog.Logger) BannersRepo } } -func (_i *bannersRepository) GetAll(req request.BannersQueryRequest) (banners []*entity.Banners, paging paginator.Pagination, err error) { +func (_i *bannersRepository) GetAll(clientId *uuid.UUID, req request.BannersQueryRequest) (banners []*entity.Banners, paging paginator.Pagination, err error) { var count int64 query := _i.DB.DB.Model(&entity.Banners{}) + if clientId != nil { + query = query.Where("banners.client_id = ?", clientId) + } + if req.Title != nil && *req.Title != "" { title := strings.ToLower(*req.Title) query = query.Where("LOWER(title) LIKE ?", "%"+title+"%") diff --git a/app/module/banners/service/banners.service.go b/app/module/banners/service/banners.service.go index 9795d35..a32e182 100644 --- a/app/module/banners/service/banners.service.go +++ b/app/module/banners/service/banners.service.go @@ -23,6 +23,7 @@ import ( "time" "github.com/gofiber/fiber/v2" + "github.com/google/uuid" "github.com/minio/minio-go/v7" "github.com/rs/zerolog" ) @@ -37,7 +38,7 @@ type bannersService struct { } type BannersService interface { - GetAll(req request.BannersQueryRequest) (banners []*response.BannersResponse, paging paginator.Pagination, err error) + GetAll(clientId *uuid.UUID,req request.BannersQueryRequest) (banners []*response.BannersResponse, paging paginator.Pagination, err error) GetOne(id uint) (banner *response.BannersResponse, err error) Create(c *fiber.Ctx, req request.BannersCreateRequest) (banner *response.BannersResponse, err error) Update(c *fiber.Ctx, id uint, req request.BannersUpdateRequest) (banner *response.BannersResponse, err error) @@ -60,14 +61,17 @@ func NewBannersService(repo repository.BannersRepository, log zerolog.Logger, cf } } -func (_i *bannersService) GetAll(req request.BannersQueryRequest) (banners []*response.BannersResponse, paging paginator.Pagination, err error) { - bannersEntity, paging, err := _i.Repo.GetAll(req) +func (_i *bannersService) GetAll( + clientId *uuid.UUID, + req request.BannersQueryRequest, +) (banners []*response.BannersResponse, paging paginator.Pagination, err error) { + + bannersEntity, paging, err := _i.Repo.GetAll(clientId, req) if err != nil { return } host := _i.Cfg.App.Domain - for _, banner := range bannersEntity { banners = append(banners, mapper.BannersResponseMapper(banner, host)) } diff --git a/app/module/sales_agents/controller/sales_agents.controller.go b/app/module/sales_agents/controller/sales_agents.controller.go index fc12671..a30e65c 100644 --- a/app/module/sales_agents/controller/sales_agents.controller.go +++ b/app/module/sales_agents/controller/sales_agents.controller.go @@ -2,18 +2,21 @@ package controller import ( "encoding/json" + "jaecoo-be/app/middleware" "jaecoo-be/app/module/sales_agents/request" "jaecoo-be/app/module/sales_agents/service" "jaecoo-be/utils/paginator" "strconv" "github.com/gofiber/fiber/v2" + "github.com/rs/zerolog" utilRes "jaecoo-be/utils/response" ) type salesAgentsController struct { salesAgentsService service.SalesAgentsService + Log zerolog.Logger } type SalesAgentsController interface { @@ -61,7 +64,13 @@ func (_i *salesAgentsController) All(c *fiber.Ctx) error { req := reqContext.ToParamRequest() req.Pagination = paginate - agentsData, paging, err := _i.salesAgentsService.GetAll(req) + clientId := middleware.GetClientID(c) + + // ✅ ambil Authorization token (kalau dibutuhkan) + + _i.Log.Info().Interface("clientId", clientId).Msg("") + + agentsData, paging, err := _i.salesAgentsService.GetAll(clientId,req) if err != nil { return err } diff --git a/app/module/sales_agents/repository/sales_agents.repository.go b/app/module/sales_agents/repository/sales_agents.repository.go index 8e13693..17312ec 100644 --- a/app/module/sales_agents/repository/sales_agents.repository.go +++ b/app/module/sales_agents/repository/sales_agents.repository.go @@ -7,6 +7,7 @@ import ( "jaecoo-be/utils/paginator" "strings" + "github.com/google/uuid" "github.com/rs/zerolog" ) @@ -16,7 +17,7 @@ type salesAgentsRepository struct { } type SalesAgentsRepository interface { - GetAll(req request.SalesAgentsQueryRequest) (agents []*entity.SalesAgents, paging paginator.Pagination, err error) + GetAll(clientId *uuid.UUID, req request.SalesAgentsQueryRequest) (agents []*entity.SalesAgents, paging paginator.Pagination, err error) FindOne(id uint) (agent *entity.SalesAgents, err error) Create(agent *entity.SalesAgents) (agentReturn *entity.SalesAgents, err error) Update(id uint, agent *entity.SalesAgents) (err error) @@ -33,7 +34,7 @@ func NewSalesAgentsRepository(db *database.Database, log zerolog.Logger) SalesAg } } -func (_i *salesAgentsRepository) GetAll(req request.SalesAgentsQueryRequest) (agents []*entity.SalesAgents, paging paginator.Pagination, err error) { +func (_i *salesAgentsRepository) GetAll(clientId *uuid.UUID, req request.SalesAgentsQueryRequest) (agents []*entity.SalesAgents, paging paginator.Pagination, err error) { var count int64 query := _i.DB.DB.Model(&entity.SalesAgents{}) @@ -47,6 +48,10 @@ func (_i *salesAgentsRepository) GetAll(req request.SalesAgentsQueryRequest) (ag query = query.Where("job_title = ?", *req.JobTitle) } + if clientId != nil { + query = query.Where("client_id = ?", clientId) + } + if req.AgentType != nil && *req.AgentType != "" { query = query.Where("agent_type LIKE ?", "%"+*req.AgentType+"%") } diff --git a/app/module/sales_agents/service/sales_agents.service.go b/app/module/sales_agents/service/sales_agents.service.go index 8bc91ce..a991455 100644 --- a/app/module/sales_agents/service/sales_agents.service.go +++ b/app/module/sales_agents/service/sales_agents.service.go @@ -23,6 +23,7 @@ import ( "time" "github.com/gofiber/fiber/v2" + "github.com/google/uuid" "github.com/minio/minio-go/v7" "github.com/rs/zerolog" ) @@ -37,7 +38,7 @@ type salesAgentsService struct { } type SalesAgentsService interface { - GetAll(req request.SalesAgentsQueryRequest) (agents []*response.SalesAgentsResponse, paging paginator.Pagination, err error) + GetAll(clientId *uuid.UUID, req request.SalesAgentsQueryRequest) (agents []*response.SalesAgentsResponse, paging paginator.Pagination, err error) GetOne(id uint) (agent *response.SalesAgentsResponse, err error) Create(c *fiber.Ctx, req request.SalesAgentsCreateRequest) (agent *response.SalesAgentsResponse, err error) Update(c *fiber.Ctx, id uint, req request.SalesAgentsUpdateRequest) (agent *response.SalesAgentsResponse, err error) @@ -60,8 +61,8 @@ func NewSalesAgentsService(repo repository.SalesAgentsRepository, log zerolog.Lo } } -func (_i *salesAgentsService) GetAll(req request.SalesAgentsQueryRequest) (agents []*response.SalesAgentsResponse, paging paginator.Pagination, err error) { - agentsEntity, paging, err := _i.Repo.GetAll(req) +func (_i *salesAgentsService) GetAll(clientId *uuid.UUID, req request.SalesAgentsQueryRequest) (agents []*response.SalesAgentsResponse, paging paginator.Pagination, err error) { + agentsEntity, paging, err := _i.Repo.GetAll(clientId,req) if err != nil { return }