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

Function getFileCursorQuery

inventory/file_utils.go:476–501  ·  view source on GitHub ↗
(args *ListFileParameters, token *PageToken, query []*ent.FileQuery)

Source from the content-addressed store, hash-verified

474}
475
476func getFileCursorQuery(args *ListFileParameters, token *PageToken, query []*ent.FileQuery) []*ent.FileQuery {
477 o := &sql.OrderTermOptions{}
478 getOrderTerm(args.Order)(o)
479
480 predicates, ok := fileCursorQuery[args.OrderBy]
481 if !ok {
482 predicates = fileCursorQuery[file.FieldID]
483 }
484
485 // If all folder is already listed in previous page, only query for files.
486 if token != nil && token.StartWithFile && !args.MixedType {
487 query = query[1:2]
488 }
489
490 // Mixing folders and files with one query
491 if args.MixedType {
492 query = query[2:]
493 } else if args.FolderOnly {
494 query = query[0:1]
495 }
496
497 if token != nil {
498 query[0].Where(predicates[o.Desc](token))
499 }
500 return query
501}
502
503// getFileNextPageToken returns the next page token for the given last file.
504func getFileNextPageToken(hasher hashid.Encoder, last *ent.File, args *ListFileParameters, nextStartWithFile bool) (string, error) {

Callers 1

cursorPaginationMethod · 0.85

Calls 2

getOrderTermFunction · 0.85
WhereMethod · 0.45

Tested by

no test coverage detected