@@ -12,6 +12,7 @@ import (
1212 "github.com/getarcaneapp/arcane/backend/internal/services"
1313 "github.com/getarcaneapp/arcane/backend/internal/utils"
1414 "github.com/getarcaneapp/arcane/backend/internal/utils/mapper"
15+ "github.com/getarcaneapp/arcane/backend/internal/utils/pagination"
1516 "go.getarcane.app/types/base"
1617 "go.getarcane.app/types/environment"
1718)
@@ -39,10 +40,11 @@ type EnvironmentPaginatedResponse struct {
3940}
4041
4142type ListEnvironmentsInput struct {
42- Page int `query:"pagination[page]" default:"1" doc:"Page number"`
43- Limit int `query:"pagination[limit]" default:"20" doc:"Items per page"`
44- SortCol string `query:"sort[column]" doc:"Column to sort by"`
45- SortDir string `query:"sort[direction]" default:"asc" doc:"Sort direction"`
43+ Search string `query:"search" doc:"Search query for filtering by name or API URL"`
44+ Sort string `query:"sort" doc:"Column to sort by"`
45+ Order string `query:"order" default:"asc" doc:"Sort direction (asc or desc)"`
46+ Start int `query:"start" default:"0" doc:"Start index for pagination"`
47+ Limit int `query:"limit" default:"20" doc:"Items per page"`
4648}
4749
4850type ListEnvironmentsOutput struct {
@@ -307,7 +309,19 @@ func (h *EnvironmentHandler) ListEnvironments(ctx context.Context, input *ListEn
307309 return nil , huma .Error500InternalServerError ("service not available" )
308310 }
309311
310- params := buildPaginationParams (input .Page , input .Limit , input .SortCol , input .SortDir )
312+ params := pagination.QueryParams {
313+ SearchQuery : pagination.SearchQuery {
314+ Search : input .Search ,
315+ },
316+ SortParams : pagination.SortParams {
317+ Sort : input .Sort ,
318+ Order : pagination .SortOrder (input .Order ),
319+ },
320+ PaginationParams : pagination.PaginationParams {
321+ Start : input .Start ,
322+ Limit : input .Limit ,
323+ },
324+ }
311325
312326 envs , paginationResp , err := h .environmentService .ListEnvironmentsPaginated (ctx , params )
313327 if err != nil {
0 commit comments