clientId add

This commit is contained in:
Anang Yusman 2026-02-05 20:23:59 +08:00
parent 0f46937b14
commit 2360ed406d
6 changed files with 48 additions and 13 deletions

View File

@ -1,18 +1,21 @@
package controller package controller
import ( import (
"jaecoo-be/app/middleware"
"jaecoo-be/app/module/banners/request" "jaecoo-be/app/module/banners/request"
"jaecoo-be/app/module/banners/service" "jaecoo-be/app/module/banners/service"
"jaecoo-be/utils/paginator" "jaecoo-be/utils/paginator"
"strconv" "strconv"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/rs/zerolog"
utilRes "jaecoo-be/utils/response" utilRes "jaecoo-be/utils/response"
) )
type bannersController struct { type bannersController struct {
bannersService service.BannersService bannersService service.BannersService
Log zerolog.Logger
} }
@ -61,7 +64,14 @@ func (_i *bannersController) All(c *fiber.Ctx) error {
req := reqContext.ToParamRequest() req := reqContext.ToParamRequest()
req.Pagination = paginate 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 { if err != nil {
return err return err
} }
@ -74,6 +84,7 @@ func (_i *bannersController) All(c *fiber.Ctx) error {
}) })
} }
// Show Banner // Show Banner
// @Summary Get Banner by ID // @Summary Get Banner by ID
// @Description API for getting Banner by ID // @Description API for getting Banner by ID

View File

@ -7,6 +7,7 @@ import (
"jaecoo-be/utils/paginator" "jaecoo-be/utils/paginator"
"strings" "strings"
"github.com/google/uuid"
"github.com/rs/zerolog" "github.com/rs/zerolog"
) )
@ -16,7 +17,7 @@ type bannersRepository struct {
} }
type BannersRepository interface { 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) FindOne(id uint) (banner *entity.Banners, err error)
Create(banner *entity.Banners) (bannerReturn *entity.Banners, err error) Create(banner *entity.Banners) (bannerReturn *entity.Banners, err error)
Update(id uint, banner *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 var count int64
query := _i.DB.DB.Model(&entity.Banners{}) query := _i.DB.DB.Model(&entity.Banners{})
if clientId != nil {
query = query.Where("banners.client_id = ?", clientId)
}
if req.Title != nil && *req.Title != "" { if req.Title != nil && *req.Title != "" {
title := strings.ToLower(*req.Title) title := strings.ToLower(*req.Title)
query = query.Where("LOWER(title) LIKE ?", "%"+title+"%") query = query.Where("LOWER(title) LIKE ?", "%"+title+"%")

View File

@ -23,6 +23,7 @@ import (
"time" "time"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/google/uuid"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"github.com/rs/zerolog" "github.com/rs/zerolog"
) )
@ -37,7 +38,7 @@ type bannersService struct {
} }
type BannersService interface { 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) GetOne(id uint) (banner *response.BannersResponse, err error)
Create(c *fiber.Ctx, req request.BannersCreateRequest) (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) 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) { func (_i *bannersService) GetAll(
bannersEntity, paging, err := _i.Repo.GetAll(req) 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 { if err != nil {
return return
} }
host := _i.Cfg.App.Domain host := _i.Cfg.App.Domain
for _, banner := range bannersEntity { for _, banner := range bannersEntity {
banners = append(banners, mapper.BannersResponseMapper(banner, host)) banners = append(banners, mapper.BannersResponseMapper(banner, host))
} }

View File

@ -2,18 +2,21 @@ package controller
import ( import (
"encoding/json" "encoding/json"
"jaecoo-be/app/middleware"
"jaecoo-be/app/module/sales_agents/request" "jaecoo-be/app/module/sales_agents/request"
"jaecoo-be/app/module/sales_agents/service" "jaecoo-be/app/module/sales_agents/service"
"jaecoo-be/utils/paginator" "jaecoo-be/utils/paginator"
"strconv" "strconv"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/rs/zerolog"
utilRes "jaecoo-be/utils/response" utilRes "jaecoo-be/utils/response"
) )
type salesAgentsController struct { type salesAgentsController struct {
salesAgentsService service.SalesAgentsService salesAgentsService service.SalesAgentsService
Log zerolog.Logger
} }
type SalesAgentsController interface { type SalesAgentsController interface {
@ -61,7 +64,13 @@ func (_i *salesAgentsController) All(c *fiber.Ctx) error {
req := reqContext.ToParamRequest() req := reqContext.ToParamRequest()
req.Pagination = paginate 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 { if err != nil {
return err return err
} }

View File

@ -7,6 +7,7 @@ import (
"jaecoo-be/utils/paginator" "jaecoo-be/utils/paginator"
"strings" "strings"
"github.com/google/uuid"
"github.com/rs/zerolog" "github.com/rs/zerolog"
) )
@ -16,7 +17,7 @@ type salesAgentsRepository struct {
} }
type SalesAgentsRepository interface { 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) FindOne(id uint) (agent *entity.SalesAgents, err error)
Create(agent *entity.SalesAgents) (agentReturn *entity.SalesAgents, err error) Create(agent *entity.SalesAgents) (agentReturn *entity.SalesAgents, err error)
Update(id uint, agent *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 var count int64
query := _i.DB.DB.Model(&entity.SalesAgents{}) 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) query = query.Where("job_title = ?", *req.JobTitle)
} }
if clientId != nil {
query = query.Where("client_id = ?", clientId)
}
if req.AgentType != nil && *req.AgentType != "" { if req.AgentType != nil && *req.AgentType != "" {
query = query.Where("agent_type LIKE ?", "%"+*req.AgentType+"%") query = query.Where("agent_type LIKE ?", "%"+*req.AgentType+"%")
} }

View File

@ -23,6 +23,7 @@ import (
"time" "time"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/google/uuid"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"github.com/rs/zerolog" "github.com/rs/zerolog"
) )
@ -37,7 +38,7 @@ type salesAgentsService struct {
} }
type SalesAgentsService interface { 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) GetOne(id uint) (agent *response.SalesAgentsResponse, err error)
Create(c *fiber.Ctx, req request.SalesAgentsCreateRequest) (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) 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) { func (_i *salesAgentsService) GetAll(clientId *uuid.UUID, req request.SalesAgentsQueryRequest) (agents []*response.SalesAgentsResponse, paging paginator.Pagination, err error) {
agentsEntity, paging, err := _i.Repo.GetAll(req) agentsEntity, paging, err := _i.Repo.GetAll(clientId,req)
if err != nil { if err != nil {
return return
} }