hybrid pagination

This commit is contained in:
Mazyar
2026-05-17 17:21:36 +03:30
parent 42d0a47226
commit 6dac5b482a
39 changed files with 696 additions and 386 deletions
+21 -7
View File
@@ -87,11 +87,16 @@ func (h *NotificationHandler) GetNotifications(c echo.Context) error {
return response.ValidationError(c, err.Error(), "")
}
pagination := response.NewPagination(c)
pagination, err := response.NewPagination(c)
if err != nil {
return response.PaginationBadRequest(c, err)
}
// Call service
notifications, err := h.service.GetNotifications(c.Request().Context(), form, pagination)
if err != nil {
if response.IsListPaginationError(err) {
return response.PaginationBadRequest(c, err)
}
return response.InternalServerError(c, "Failed to get notifications")
}
@@ -141,11 +146,16 @@ func (h *NotificationHandler) AdminNotifications(c echo.Context) error {
form.Recipient = userID
form.Status = "sent"
pagination := response.NewPagination(c)
pagination, err := response.NewPagination(c)
if err != nil {
return response.PaginationBadRequest(c, err)
}
// Call service
notifications, err := h.service.GetNotifications(c.Request().Context(), form, pagination)
if err != nil {
if response.IsListPaginationError(err) {
return response.PaginationBadRequest(c, err)
}
return response.InternalServerError(c, "Failed to get notifications")
}
@@ -254,12 +264,16 @@ func (h *NotificationHandler) CustomerNotifications(c echo.Context) error {
form.Recipient = userID
form.Status = "sent"
pagination := response.NewPagination(c)
pagination, err := response.NewPagination(c)
if err != nil {
return response.PaginationBadRequest(c, err)
}
// Call service
notifications, err := h.service.GetNotifications(c.Request().Context(), form, pagination)
if err != nil {
// Log the actual error for debugging
if response.IsListPaginationError(err) {
return response.PaginationBadRequest(c, err)
}
c.Logger().Error("GetNotifications failed", map[string]interface{}{
"error": err.Error(),
"status": form.Status,