Add support for limit/offset
This commit is contained in:
@@ -144,8 +144,7 @@ func (r record) Find(module *types.Module, filter types.RecordFilter) (set types
|
||||
//
|
||||
// @todo optimize and include value loading
|
||||
func (r record) Export(module *types.Module, filter types.RecordFilter) (set types.RecordSet, err error) {
|
||||
filter.PerPage = 0
|
||||
filter.Page = 0
|
||||
filter.PageFilter = rh.PageFilter{}
|
||||
|
||||
query, err := r.buildQuery(module, filter)
|
||||
if err != nil {
|
||||
|
||||
@@ -54,7 +54,7 @@ func (ctrl Attachment) List(ctx context.Context, r *request.AttachmentList) (int
|
||||
RecordID: r.RecordID,
|
||||
FieldName: r.FieldName,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.attachment.With(ctx).Find(f)
|
||||
|
||||
@@ -58,7 +58,7 @@ func (ctrl Chart) List(ctx context.Context, r *request.ChartList) (interface{},
|
||||
|
||||
Sort: r.Sort,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.chart.With(ctx).Find(f)
|
||||
|
||||
@@ -81,7 +81,7 @@ func (ctrl *Module) List(ctx context.Context, r *request.ModuleList) (interface{
|
||||
Handle: r.Handle,
|
||||
Sort: r.Sort,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.module.With(ctx).Find(f)
|
||||
|
||||
@@ -63,7 +63,7 @@ func (ctrl Namespace) List(ctx context.Context, r *request.NamespaceList) (inter
|
||||
|
||||
Sort: r.Sort,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.namespace.With(ctx).Find(f)
|
||||
|
||||
@@ -64,7 +64,7 @@ func (ctrl *Page) List(ctx context.Context, r *request.PageList) (interface{}, e
|
||||
|
||||
Sort: r.Sort,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.page.With(ctx).Find(f)
|
||||
|
||||
@@ -88,7 +88,7 @@ func (ctrl *Record) List(ctx context.Context, r *request.RecordList) (interface{
|
||||
Filter: r.Filter,
|
||||
Sort: r.Sort,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
})
|
||||
|
||||
return ctrl.makeFilterPayload(ctx, m, rr, filter, err)
|
||||
|
||||
+12
-7
@@ -28,16 +28,21 @@ type (
|
||||
// with the response
|
||||
Count uint `json:"count"`
|
||||
}
|
||||
|
||||
paginationParams interface {
|
||||
GetLimit() uint
|
||||
GetOffset() uint
|
||||
GetPage() uint
|
||||
GetPerPage() uint
|
||||
}
|
||||
)
|
||||
|
||||
func Paging(page, perPage uint) PageFilter {
|
||||
if page == 0 {
|
||||
page = 1
|
||||
}
|
||||
|
||||
func Paging(p paginationParams) PageFilter {
|
||||
return PageFilter{
|
||||
Page: page,
|
||||
PerPage: perPage,
|
||||
Limit: p.GetLimit(),
|
||||
Offset: p.GetOffset(),
|
||||
Page: p.GetPage(),
|
||||
PerPage: p.GetPerPage(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ func (ctrl *Application) List(ctx context.Context, r *request.ApplicationList) (
|
||||
Deleted: rh.FilterState(r.Deleted),
|
||||
|
||||
Sort: rh.NormalizeSortColumns(r.Sort),
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.application.With(ctx).Find(f)
|
||||
|
||||
@@ -46,7 +46,7 @@ func (ctrl *Reminder) List(ctx context.Context, r *request.ReminderList) (interf
|
||||
ExcludeDismissed: r.ExcludeDismissed,
|
||||
ScheduledOnly: r.ScheduledOnly,
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.reminder.Find(ctx, f)
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ func (ctrl Role) List(ctx context.Context, r *request.RoleList) (interface{}, er
|
||||
Deleted: rh.FilterState(r.Deleted),
|
||||
|
||||
Sort: rh.NormalizeSortColumns(r.Sort),
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
set, filter, err := ctrl.role.With(ctx).Find(f)
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ func (ctrl User) List(ctx context.Context, r *request.UserList) (interface{}, er
|
||||
|
||||
Sort: rh.NormalizeSortColumns(r.Sort),
|
||||
|
||||
PageFilter: rh.Paging(r.Page, r.PerPage),
|
||||
PageFilter: rh.Paging(r),
|
||||
}
|
||||
|
||||
if r.IncSuspended && f.Suspended == 0 {
|
||||
|
||||
Reference in New Issue
Block a user