hybrid pagination
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"tm/pkg/logger"
|
||||
orm "tm/pkg/mongo"
|
||||
"tm/pkg/notification"
|
||||
"tm/pkg/response"
|
||||
)
|
||||
@@ -155,18 +154,7 @@ func (s *contactService) Search(ctx context.Context, form *SearchContactsForm, p
|
||||
return nil, fmt.Errorf("invalid date range: date_from must be before date_to")
|
||||
}
|
||||
|
||||
// Convert response.Pagination to orm.Pagination
|
||||
ormPagination := orm.Pagination{
|
||||
Limit: pagination.Limit,
|
||||
Skip: pagination.Offset,
|
||||
SortField: pagination.SortBy,
|
||||
SortOrder: 1, // Default ascending
|
||||
}
|
||||
if pagination.SortOrder == "desc" {
|
||||
ormPagination.SortOrder = -1
|
||||
}
|
||||
|
||||
result, err := s.repo.Search(ctx, *form, ormPagination)
|
||||
result, err := s.repo.Search(ctx, *form, pagination)
|
||||
if err != nil {
|
||||
s.logger.Error("Failed to search contacts", map[string]interface{}{
|
||||
"filters": form,
|
||||
@@ -188,7 +176,7 @@ func (s *contactService) Search(ctx context.Context, form *SearchContactsForm, p
|
||||
|
||||
return &ContactListResponse{
|
||||
Contacts: contactResponses,
|
||||
Meta: pagination.Response(result.TotalCount),
|
||||
Meta: pagination.ListMeta(result.TotalCount, result.NextCursor, result.HasMore, result.PageOffset),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user