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
+20 -5
View File
@@ -60,12 +60,20 @@ func (h *Handler) Search(c echo.Context) error {
return response.ValidationError(c, "Invalid request data", err.Error())
}
feedbackList, err := h.service.Search(c.Request().Context(), *form, response.NewPagination(c))
pagination, err := response.NewPagination(c)
if err != nil {
return response.PaginationBadRequest(c, err)
}
feedbackList, err := h.service.Search(c.Request().Context(), *form, pagination)
if err != nil {
if response.IsListPaginationError(err) {
return response.PaginationBadRequest(c, err)
}
return response.InternalServerError(c, "Failed to retrieve feedback list")
}
return response.Success(c, feedbackList.Feedback, "feedback list retrieved successfully")
return response.SuccessWithMeta(c, feedbackList, feedbackList.Meta, "feedback list retrieved successfully")
}
// GetFeedbackByID retrieves feedback by ID with loaded related data
@@ -217,13 +225,20 @@ func (h *Handler) PublicList(c echo.Context) error {
}
form.Company = &companyID
// Call service
result, err := h.service.Search(c.Request().Context(), *form, response.NewPagination(c))
pagination, err := response.NewPagination(c)
if err != nil {
return response.PaginationBadRequest(c, err)
}
result, err := h.service.Search(c.Request().Context(), *form, pagination)
if err != nil {
if response.IsListPaginationError(err) {
return response.PaginationBadRequest(c, err)
}
return response.InternalServerError(c, "Failed to list feedback")
}
return response.Success(c, result, "Feedback list retrieved successfully")
return response.SuccessWithMeta(c, result, result.Meta, "Feedback list retrieved successfully")
}
// PublicGetFeedback retrieves feedback by ID