Add support for limit/offset

This commit is contained in:
Denis Arh
2020-03-27 18:36:05 +01:00
parent 7a6a0851c2
commit fe8db890b0
12 changed files with 23 additions and 19 deletions
+1 -2
View File
@@ -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 {
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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(),
}
}
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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 {