(ctx context.Context, query *ent.TaskQuery, args *ListTaskArgs, paramMargin int)
| 287 | } |
| 288 | |
| 289 | func (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 | |
| 315 | func getTaskOrderOption(args *ListTaskArgs) []task.OrderOption { |
| 316 | orderTerm := getOrderTerm(args.Order) |
no test coverage detected