From 79047df4b66f1f097779e4cedda85b9c882cf952 Mon Sep 17 00:00:00 2001 From: "aditya.siregar" Date: Tue, 30 Jul 2024 16:35:45 +0700 Subject: [PATCH] Add Filter Partner --- internal/handlers/http/sites/sites.go | 10 +++++----- internal/handlers/request/site.go | 23 ++++++++++++----------- internal/middlewares/cors.go | 1 + internal/repository/sites/sites.go | 4 ++++ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/internal/handlers/http/sites/sites.go b/internal/handlers/http/sites/sites.go index d23a70c..5100536 100644 --- a/internal/handlers/http/sites/sites.go +++ b/internal/handlers/http/sites/sites.go @@ -150,7 +150,7 @@ func (h *Handler) GetAll(c *gin.Context) { } ctx := request.GetMyContext(c) - Sites, total, err := h.service.GetAll(c.Request.Context(), req.ToEntity(ctx)) + Sites, total, err := h.service.GetAll(c.Request.Context(), req.ToEntity(ctx, req.PartnerID)) if err != nil { response.ErrorWrapper(c, err) return @@ -252,7 +252,7 @@ func (h *Handler) Count(c *gin.Context) { } ctx := request.GetMyContext(c) - res, err := h.service.Count(ctx, req.ToEntity(ctx)) + res, err := h.service.Count(ctx, req.ToEntity(ctx, ctx.GetPartnerID())) if err != nil { response.ErrorWrapper(c, err) @@ -290,13 +290,13 @@ func (h *Handler) toSiteResponse(resp *entity.Site) response.Site { } func (h *Handler) toSiteResponseList(resp []*entity.Site, total int64, req request.SiteParam) response.SiteList { - var Sites []response.Site + sites := []response.Site{} for _, b := range resp { - Sites = append(Sites, h.toSiteResponse(b)) + sites = append(sites, h.toSiteResponse(b)) } return response.SiteList{ - Sites: Sites, + Sites: sites, Total: total, Limit: req.Limit, Offset: req.Offset, diff --git a/internal/handlers/request/site.go b/internal/handlers/request/site.go index 557cd1a..5d4125f 100644 --- a/internal/handlers/request/site.go +++ b/internal/handlers/request/site.go @@ -60,19 +60,20 @@ func (r *Site) ToEntity(createdBy int64) *entity.Site { } type SiteParam struct { - Search string `form:"search"` - Name string `form:"name"` - Limit int `form:"limit,default=10"` - Offset int `form:"offset,default=0"` + Search string `form:"search"` + PartnerID *int64 `form:"partner_id"` + Name string `form:"name"` + Limit int `form:"limit,default=10"` + Offset int `form:"offset,default=0"` } -func (r *SiteParam) ToEntity(ctx mycontext.Context) entity.SiteSearch { +func (r *SiteParam) ToEntity(ctx mycontext.Context, partnerID *int64) entity.SiteSearch { return entity.SiteSearch{ - PartnerID: ctx.GetPartnerID(), - IsAdmin: ctx.IsAdmin(), - Search: r.Search, - Name: r.Name, - Limit: r.Limit, - Offset: r.Offset, + PartnerID: partnerID, + IsAdmin: ctx.IsAdmin(), + Search: r.Search, + Name: r.Name, + Limit: r.Limit, + Offset: r.Offset, } } diff --git a/internal/middlewares/cors.go b/internal/middlewares/cors.go index 0d1f783..d21e318 100644 --- a/internal/middlewares/cors.go +++ b/internal/middlewares/cors.go @@ -12,6 +12,7 @@ import ( func Cors() gin.HandlerFunc { return func(c *gin.Context) { c.Header("Access-Control-Allow-Origin", "*") + c.Header("Access-Control-Allow-Origin", "http://localhost:3000") c.Header("Access-Control-Allow-Credentials", "true") c.Header("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, Accept, origin, Referer, Cache-Control, X-Requested-With") c.Header("Access-Control-Allow-Methods", "POST,HEAD,PATCH, OPTIONS, GET, PUT, DELETE") diff --git a/internal/repository/sites/sites.go b/internal/repository/sites/sites.go index c02b725..f97b9ac 100644 --- a/internal/repository/sites/sites.go +++ b/internal/repository/sites/sites.go @@ -101,6 +101,10 @@ func (r *SiteRepository) GetAll(ctx context.Context, req entity.SiteSearch) (ent query = query.Where("name ILIKE ?", "%"+req.Name+"%") } + if req.PartnerID != nil { + query = query.Where("partner_id = ?", req.PartnerID) + } + if req.Limit > 0 { query = query.Limit(req.Limit) }