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)
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,

View File

@ -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,
}
}

View File

@ -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")

View File

@ -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)
}