MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / offsetPagination

Method offsetPagination

inventory/task.go:289–313  ·  view source on GitHub ↗
(ctx context.Context, query *ent.TaskQuery, args *ListTaskArgs, paramMargin int)

Source from the content-addressed store, hash-verified

287}
288
289func (c *taskClient) offsetPagination(ctx context.Context, query *ent.TaskQuery, args *ListTaskArgs, paramMargin int) ([]*ent.Task, *PaginationResults, error) {
290 pageSize := capPageSize(c.maxSQlParam, args.PageSize, paramMargin)
291 query.Order(getTaskOrderOption(args)...)
292
293 // Count total items
294 total, err := query.Clone().Count(ctx)
295 if err != nil {
296 return nil, nil, err
297 }
298
299 logs, err := query.
300 Limit(pageSize).
301 Offset(args.Page * args.PageSize).
302 All(ctx)
303 if err != nil {
304 return nil, nil, err
305 }
306
307 return logs, &PaginationResults{
308 PageSize: pageSize,
309 TotalItems: total,
310 Page: args.Page,
311 }, nil
312
313}
314
315func getTaskOrderOption(args *ListTaskArgs) []task.OrderOption {
316 orderTerm := getOrderTerm(args.Order)

Callers 1

ListMethod · 0.95

Calls 8

capPageSizeFunction · 0.85
getTaskOrderOptionFunction · 0.85
OrderMethod · 0.65
CountMethod · 0.65
OffsetMethod · 0.65
LimitMethod · 0.65
CloneMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected