From 2e222d1bfab7039d2f853a8b2d79dce251f777cd Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Fri, 2 Sep 2022 08:37:03 +0200 Subject: [PATCH] Fix template searching, add query (by handle, type) --- store/adapters/rdbms/filters.gen.go | 7 +++++++ system/rest.yaml | 3 +++ system/rest/request/template.go | 17 +++++++++++++++++ system/rest/template.go | 1 + system/template.cue | 1 + system/types/template.go | 1 + 6 files changed, 30 insertions(+) diff --git a/store/adapters/rdbms/filters.gen.go b/store/adapters/rdbms/filters.gen.go index c1dbdef5e..08f89cfc8 100644 --- a/store/adapters/rdbms/filters.gen.go +++ b/store/adapters/rdbms/filters.gen.go @@ -1221,6 +1221,13 @@ func TemplateFilter(f systemType.TemplateFilter) (ee []goqu.Expression, _ system ee = append(ee, goqu.I("id").In(f.LabeledIDs)) } + if f.Query != "" { + ee = append(ee, goqu.Or( + goqu.C("handle").ILike("%"+f.Query+"%"), + goqu.C("type").ILike("%"+f.Query+"%"), + )) + } + return ee, f, err } diff --git a/system/rest.yaml b/system/rest.yaml index 64b5c28dd..333d9c48a 100644 --- a/system/rest.yaml +++ b/system/rest.yaml @@ -1443,6 +1443,9 @@ endpoints: path: "/" parameters: get: + - name: query + type: string + title: Query - name: handle type: string title: Handle diff --git a/system/rest/request/template.go b/system/rest/request/template.go index 3aa6d3336..695571e87 100644 --- a/system/rest/request/template.go +++ b/system/rest/request/template.go @@ -36,6 +36,11 @@ var ( type ( // Internal API interface TemplateList struct { + // Query GET parameter + // + // Query + Query string + // Handle GET parameter // // Handle @@ -231,6 +236,7 @@ func NewTemplateList() *TemplateList { // Auditable returns all auditable/loggable parameters func (r TemplateList) Auditable() map[string]interface{} { return map[string]interface{}{ + "query": r.Query, "handle": r.Handle, "type": r.Type, "ownerID": r.OwnerID, @@ -243,6 +249,11 @@ func (r TemplateList) Auditable() map[string]interface{} { } } +// Auditable returns all auditable/loggable parameters +func (r TemplateList) GetQuery() string { + return r.Query +} + // Auditable returns all auditable/loggable parameters func (r TemplateList) GetHandle() string { return r.Handle @@ -295,6 +306,12 @@ func (r *TemplateList) Fill(req *http.Request) (err error) { // GET params tmp := req.URL.Query() + if val, ok := tmp["query"]; ok && len(val) > 0 { + r.Query, err = val[0], nil + if err != nil { + return err + } + } if val, ok := tmp["handle"]; ok && len(val) > 0 { r.Handle, err = val[0], nil if err != nil { diff --git a/system/rest/template.go b/system/rest/template.go index 2dd3b1c96..9907a7e95 100644 --- a/system/rest/template.go +++ b/system/rest/template.go @@ -72,6 +72,7 @@ func (ctrl *Template) List(ctx context.Context, r *request.TemplateList) (interf var ( err error f = types.TemplateFilter{ + Query: r.Query, Handle: r.Handle, Type: r.Type, OwnerID: r.OwnerID, diff --git a/system/template.cue b/system/template.cue index fba8110e8..63e113a2b 100644 --- a/system/template.cue +++ b/system/template.cue @@ -33,6 +33,7 @@ template: { deleted: {goType: "filter.State", storeIdent: "deleted_at"} } + query: ["handle", "type"] byValue: ["template_id", "handle", "partial", "type", "owner_id"] byNilState: ["deleted"] } diff --git a/system/types/template.go b/system/types/template.go index 57ab9e9c3..2014ea860 100644 --- a/system/types/template.go +++ b/system/types/template.go @@ -45,6 +45,7 @@ type ( TemplateFilter struct { TemplateID []uint64 `json:"templateID"` + Query string `json:"query"` Handle string `json:"handle"` Type string `json:"type"` OwnerID uint64 `json:"ownerID,string"`