feat: add customer list, modify pagination utils

This commit is contained in:
2026-04-07 09:28:39 +02:00
parent c5cc4f7a48
commit 813d1f4879
8 changed files with 61 additions and 55 deletions

View File

@@ -4,10 +4,12 @@ import (
"strconv"
"git.ma-al.com/goc_daniel/b2b/app/delivery/middleware/perms"
"git.ma-al.com/goc_daniel/b2b/app/model"
"git.ma-al.com/goc_daniel/b2b/app/service/customerService"
"git.ma-al.com/goc_daniel/b2b/app/utils/i18n"
"git.ma-al.com/goc_daniel/b2b/app/utils/localeExtractor"
"git.ma-al.com/goc_daniel/b2b/app/utils/nullable"
"git.ma-al.com/goc_daniel/b2b/app/utils/query/query_params"
"git.ma-al.com/goc_daniel/b2b/app/utils/response"
"git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors"
"github.com/gofiber/fiber/v3"
@@ -28,7 +30,7 @@ func CustomerHandlerRoutes(r fiber.Router) fiber.Router {
handler := NewCustomerHandler()
r.Get("", handler.customerData)
// r.Get("/list", handler.listCustomers)
r.Get("/list", handler.listCustomers)
return r
}
@@ -67,41 +69,28 @@ func (h *customerHandler) customerData(fc fiber.Ctx) error {
return fc.JSON(response.Make(&customer, 0, i18n.T_(fc, response.Message_OK)))
}
// func (h *customerHandler) listCustomers(fc fiber.Ctx) error {
// var customerId uint
// customerIdStr := fc.Query("id")
// if customerIdStr != "" {
func (h *customerHandler) listCustomers(fc fiber.Ctx) error {
p, filt, err := query_params.ParseFilters[model.Customer](fc, columnMappingListProducts)
if err != nil {
return fc.Status(responseErrors.GetErrorStatus(err)).
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, err)))
}
// user, ok := localeExtractor.GetCustomer(fc)
// if !ok || user == nil {
// return fc.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, responseErrors.ErrBadAttribute)))
// }
// id, err := strconv.ParseUint(customerIdStr, 10, 64)
// if err != nil {
// return fiber.ErrBadRequest
// }
user, ok := localeExtractor.GetCustomer(fc)
if !ok || user == nil {
return fc.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, responseErrors.ErrBadAttribute)))
}
if !user.HasPermission(perms.UserReadAny) {
return fc.Status(fiber.StatusForbidden).
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, responseErrors.ErrForbidden)))
}
// if user.UserID != uint(id) && !user.HasPermission(perms.UserReadAny) {
// return fc.Status(fiber.StatusForbidden).
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, responseErrors.ErrForbidden)))
// }
customer, err := h.service.Find(user.LangID, p, filt)
if err != nil {
return fc.Status(responseErrors.GetErrorStatus(err)).
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, err)))
}
// customerId = uint(id)
// } else {
// id, ok := fc.Locals("userID").(uint)
// if !ok {
// return fc.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, responseErrors.ErrBadAttribute)))
// }
// customerId = id
// }
// customer, err := h.service.GetById(customerId)
// if err != nil {
// return fc.Status(responseErrors.GetErrorStatus(err)).
// JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(fc, err)))
// }
// return fc.JSON(response.Make(&customer, 0, i18n.T_(fc, response.Message_OK)))
// }
return fc.JSON(response.Make(&customer, 0, i18n.T_(fc, response.Message_OK)))
}