fix: implement orderby create_at api (#3437)

pull/3461/head
Howard Yin 4 months ago committed by GitHub
parent 5994f7864f
commit c33273b36d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -383,6 +383,8 @@ func getFileOrderOption(args *ListFileParameters) []file.OrderOption {
return []file.OrderOption{file.ByName(orderTerm), file.ByID(orderTerm)} return []file.OrderOption{file.ByName(orderTerm), file.ByID(orderTerm)}
case file.FieldSize: case file.FieldSize:
return []file.OrderOption{file.BySize(orderTerm), file.ByID(orderTerm)} return []file.OrderOption{file.BySize(orderTerm), file.ByID(orderTerm)}
case file.FieldCreatedAt:
return []file.OrderOption{file.ByCreatedAt(orderTerm), file.ByID(orderTerm)}
case file.FieldUpdatedAt: case file.FieldUpdatedAt:
return []file.OrderOption{file.ByUpdatedAt(orderTerm), file.ByID(orderTerm)} return []file.OrderOption{file.ByUpdatedAt(orderTerm), file.ByID(orderTerm)}
default: default:
@ -435,10 +437,16 @@ var fileCursorQuery = map[string]map[bool]func(token *PageToken) predicate.File{
}, },
file.FieldCreatedAt: { file.FieldCreatedAt: {
true: func(token *PageToken) predicate.File { true: func(token *PageToken) predicate.File {
return file.IDLT(token.ID) return file.Or(
file.CreatedAtLT(*token.Time),
file.And(file.CreatedAt(*token.Time), file.IDLT(token.ID)),
)
}, },
false: func(token *PageToken) predicate.File { false: func(token *PageToken) predicate.File {
return file.IDGT(token.ID) return file.Or(
file.CreatedAtGT(*token.Time),
file.And(file.CreatedAt(*token.Time), file.IDGT(token.ID)),
)
}, },
}, },
file.FieldUpdatedAt: { file.FieldUpdatedAt: {
@ -502,6 +510,8 @@ func getFileNextPageToken(hasher hashid.Encoder, last *ent.File, args *ListFileP
switch args.OrderBy { switch args.OrderBy {
case file.FieldName: case file.FieldName:
token.String = last.Name token.String = last.Name
case file.FieldCreatedAt:
token.Time = &last.CreatedAt
case file.FieldSize: case file.FieldSize:
token.Int = int(last.Size) token.Int = int(last.Size)
case file.FieldUpdatedAt: case file.FieldUpdatedAt:

Loading…
Cancel
Save