Merge 5d21d47973 into 7be5935c55
This commit is contained in:
commit
a97c6be650
12
public/swagger.v1.json
vendored
12
public/swagger.v1.json
vendored
|
|
@ -985,6 +985,18 @@
|
||||||
"description": "if `uid` is given, search only for repos that the user owns",
|
"description": "if `uid` is given, search only for repos that the user owns",
|
||||||
"name": "exclusive",
|
"name": "exclusive",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "sort repos by attribute. Supported values are \"alpha\", \"created\", \"updated\", \"size\", and \"id\". Default is \"alpha\"",
|
||||||
|
"name": "sort",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "sort order, either \"asc\" (ascending) or \"desc\" (descending). Default is \"asc\", ignored if \"sort\" is not specified.",
|
||||||
|
"name": "order",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,23 @@ import (
|
||||||
api "code.gitea.io/sdk/gitea"
|
api "code.gitea.io/sdk/gitea"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var searchOrderByMap = map[string]map[string]models.SearchOrderBy{
|
||||||
|
"asc": {
|
||||||
|
"alpha": models.SearchOrderByAlphabetically,
|
||||||
|
"created": models.SearchOrderByOldest,
|
||||||
|
"updated": models.SearchOrderByLeastUpdated,
|
||||||
|
"size": models.SearchOrderBySize,
|
||||||
|
"id": models.SearchOrderByID,
|
||||||
|
},
|
||||||
|
"desc": {
|
||||||
|
"alpha": models.SearchOrderByAlphabeticallyReverse,
|
||||||
|
"created": models.SearchOrderByNewest,
|
||||||
|
"updated": models.SearchOrderByRecentUpdated,
|
||||||
|
"size": models.SearchOrderBySizeReverse,
|
||||||
|
"id": models.SearchOrderByIDReverse,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
// Search repositories via options
|
// Search repositories via options
|
||||||
func Search(ctx *context.APIContext) {
|
func Search(ctx *context.APIContext) {
|
||||||
// swagger:operation GET /repos/search repository repoSearch
|
// swagger:operation GET /repos/search repository repoSearch
|
||||||
|
|
@ -53,6 +70,17 @@ func Search(ctx *context.APIContext) {
|
||||||
// in: query
|
// in: query
|
||||||
// description: if `uid` is given, search only for repos that the user owns
|
// description: if `uid` is given, search only for repos that the user owns
|
||||||
// type: boolean
|
// type: boolean
|
||||||
|
// - name: sort
|
||||||
|
// in: query
|
||||||
|
// description: sort repos by attribute. Supported values are
|
||||||
|
// "alpha", "created", "updated", "size", and "id".
|
||||||
|
// Default is "alpha"
|
||||||
|
// type: string
|
||||||
|
// - name: order
|
||||||
|
// in: query
|
||||||
|
// description: sort order, either "asc" (ascending) or "desc" (descending).
|
||||||
|
// Default is "asc", ignored if "sort" is not specified.
|
||||||
|
// type: string
|
||||||
// responses:
|
// responses:
|
||||||
// "200":
|
// "200":
|
||||||
// "$ref": "#/responses/SearchResults"
|
// "$ref": "#/responses/SearchResults"
|
||||||
|
|
@ -88,6 +116,25 @@ func Search(ctx *context.APIContext) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sortMode = ctx.Query("sort")
|
||||||
|
if len(sortMode) > 0 {
|
||||||
|
var sortOrder = ctx.Query("order")
|
||||||
|
if len(sortOrder) == 0 {
|
||||||
|
sortOrder = "asc"
|
||||||
|
}
|
||||||
|
if searchModeMap, ok := searchOrderByMap[sortOrder]; ok {
|
||||||
|
if orderBy, ok := searchModeMap[sortMode]; ok {
|
||||||
|
opts.OrderBy = orderBy
|
||||||
|
} else {
|
||||||
|
ctx.Error(http.StatusUnprocessableEntity, "", fmt.Errorf("Invalid sort mode: \"%s\"", sortMode))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ctx.Error(http.StatusUnprocessableEntity, "", fmt.Errorf("Invalid sort order: \"%s\"", sortOrder))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if opts.OwnerID > 0 {
|
if opts.OwnerID > 0 {
|
||||||
var repoOwner *models.User
|
var repoOwner *models.User
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user