Add Filter Partner

This commit is contained in:
aditya.siregar 2024-07-30 16:35:45 +07:00
parent f3fbe9ba10
commit 79047df4b6
4 changed files with 22 additions and 16 deletions

View File

@ -150,7 +150,7 @@ func (h *Handler) GetAll(c *gin.Context) {
} }
ctx := request.GetMyContext(c) 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 { if err != nil {
response.ErrorWrapper(c, err) response.ErrorWrapper(c, err)
return return
@ -252,7 +252,7 @@ func (h *Handler) Count(c *gin.Context) {
} }
ctx := request.GetMyContext(c) 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 { if err != nil {
response.ErrorWrapper(c, err) 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 { 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 { for _, b := range resp {
Sites = append(Sites, h.toSiteResponse(b)) sites = append(sites, h.toSiteResponse(b))
} }
return response.SiteList{ return response.SiteList{
Sites: Sites, Sites: sites,
Total: total, Total: total,
Limit: req.Limit, Limit: req.Limit,
Offset: req.Offset, Offset: req.Offset,

View File

@ -60,19 +60,20 @@ func (r *Site) ToEntity(createdBy int64) *entity.Site {
} }
type SiteParam struct { type SiteParam struct {
Search string `form:"search"` Search string `form:"search"`
Name string `form:"name"` PartnerID *int64 `form:"partner_id"`
Limit int `form:"limit,default=10"` Name string `form:"name"`
Offset int `form:"offset,default=0"` 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{ return entity.SiteSearch{
PartnerID: ctx.GetPartnerID(), PartnerID: partnerID,
IsAdmin: ctx.IsAdmin(), IsAdmin: ctx.IsAdmin(),
Search: r.Search, Search: r.Search,
Name: r.Name, Name: r.Name,
Limit: r.Limit, Limit: r.Limit,
Offset: r.Offset, Offset: r.Offset,
} }
} }

View File

@ -12,6 +12,7 @@ import (
func Cors() gin.HandlerFunc { func Cors() gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
c.Header("Access-Control-Allow-Origin", "*") 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-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-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") c.Header("Access-Control-Allow-Methods", "POST,HEAD,PATCH, OPTIONS, GET, PUT, DELETE")

View File

@ -101,6 +101,10 @@ func (r *SiteRepository) GetAll(ctx context.Context, req entity.SiteSearch) (ent
query = query.Where("name ILIKE ?", "%"+req.Name+"%") query = query.Where("name ILIKE ?", "%"+req.Name+"%")
} }
if req.PartnerID != nil {
query = query.Where("partner_id = ?", req.PartnerID)
}
if req.Limit > 0 { if req.Limit > 0 {
query = query.Limit(req.Limit) query = query.Limit(req.Limit)
} }