Add option to filter namespaces by slug
This commit is contained in:
parent
91633e9695
commit
b8088caab5
@ -27,6 +27,12 @@
|
||||
"required": false,
|
||||
"title": "Search query"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "slug",
|
||||
"required": false,
|
||||
"title": "Search by namespace slug"
|
||||
},
|
||||
{
|
||||
"name": "page",
|
||||
"type": "uint",
|
||||
|
||||
@ -27,6 +27,12 @@
|
||||
"title": "Search query",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "slug",
|
||||
"required": false,
|
||||
"title": "Search by namespace slug",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "page",
|
||||
"required": false,
|
||||
|
||||
@ -86,6 +86,10 @@ func (r *namespace) Find(filter types.NamespaceFilter) (set types.NamespaceSet,
|
||||
query = query.Where("name like ? OR slug like ?", q, q)
|
||||
}
|
||||
|
||||
if f.Slug != "" {
|
||||
query = query.Where("LOWER(slug) = LOWER(?)", f.Slug)
|
||||
}
|
||||
|
||||
if f.Count, err = r.count(query); err != nil || f.Count == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
@ -58,6 +58,7 @@ func (Namespace) New() *Namespace {
|
||||
func (ctrl Namespace) List(ctx context.Context, r *request.NamespaceList) (interface{}, error) {
|
||||
f := types.NamespaceFilter{
|
||||
Query: r.Query,
|
||||
Slug: r.Slug,
|
||||
PerPage: r.PerPage,
|
||||
Page: r.Page,
|
||||
}
|
||||
|
||||
@ -36,6 +36,7 @@ var _ = multipart.FileHeader{}
|
||||
// Namespace list request parameters
|
||||
type NamespaceList struct {
|
||||
Query string
|
||||
Slug string
|
||||
Page uint
|
||||
PerPage uint
|
||||
}
|
||||
@ -48,6 +49,7 @@ func (r NamespaceList) Auditable() map[string]interface{} {
|
||||
var out = map[string]interface{}{}
|
||||
|
||||
out["query"] = r.Query
|
||||
out["slug"] = r.Slug
|
||||
out["page"] = r.Page
|
||||
out["perPage"] = r.PerPage
|
||||
|
||||
@ -84,6 +86,9 @@ func (r *NamespaceList) Fill(req *http.Request) (err error) {
|
||||
if val, ok := get["query"]; ok {
|
||||
r.Query = val
|
||||
}
|
||||
if val, ok := get["slug"]; ok {
|
||||
r.Slug = val
|
||||
}
|
||||
if val, ok := get["page"]; ok {
|
||||
r.Page = parseUint(val)
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ type (
|
||||
|
||||
NamespaceFilter struct {
|
||||
Query string `json:"query"`
|
||||
Slug string `json:"slug"`
|
||||
Page uint `json:"page"`
|
||||
PerPage uint `json:"perPage"`
|
||||
Sort string `json:"sort"`
|
||||
|
||||
@ -604,6 +604,7 @@ Compose module definitions
|
||||
| Parameter | Type | Method | Description | Default | Required? |
|
||||
| --------- | ---- | ------ | ----------- | ------- | --------- |
|
||||
| query | string | GET | Search query | N/A | NO |
|
||||
| slug | string | GET | Search by namespace slug | N/A | NO |
|
||||
| page | uint | GET | Page number (0 based) | N/A | NO |
|
||||
| perPage | uint | GET | Returned items per page (default 50) | N/A | NO |
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user