3
0

Add query support for report list

This commit is contained in:
Tomaž Jerman
2022-11-04 08:46:10 +01:00
committed by Jože Fortun
parent 084ac727bd
commit 79658c0194
6 changed files with 30 additions and 0 deletions
+6
View File
@@ -1072,6 +1072,12 @@ func ReportFilter(f systemType.ReportFilter) (ee []goqu.Expression, _ systemType
ee = append(ee, goqu.I("id").In(f.LabeledIDs))
}
if f.Query != "" {
ee = append(ee, goqu.Or(
goqu.C("handle").ILike("%"+f.Query+"%"),
))
}
return ee, f, err
}
+1
View File
@@ -47,6 +47,7 @@ report: {
deleted: {goType: "filter.State", storeIdent: "deleted_at"}
}
query: ["handle"]
byValue: ["handle", "report_id"]
byNilState: ["deleted"]
}
+4
View File
@@ -1645,6 +1645,10 @@ endpoints:
required: false
title: Report handle
type: string
- name: query
required: false
title: Report query
type: string
- name: deleted
required: false
title: Exclude (0, default), include (1) or return only (2) deleted reports
+1
View File
@@ -72,6 +72,7 @@ func (ctrl *Report) List(ctx context.Context, r *request.ReportList) (interface{
err error
f = types.ReportFilter{
Handle: r.Handle,
Query: r.Query,
Labels: r.Labels,
Deleted: filter.State(r.Deleted),
}
+17
View File
@@ -42,6 +42,11 @@ type (
// Report handle
Handle string
// Query GET parameter
//
// Report query
Query string
// Deleted GET parameter
//
// Exclude (0, default), include (1) or return only (2) deleted reports
@@ -202,6 +207,7 @@ func NewReportList() *ReportList {
func (r ReportList) Auditable() map[string]interface{} {
return map[string]interface{}{
"handle": r.Handle,
"query": r.Query,
"deleted": r.Deleted,
"labels": r.Labels,
"limit": r.Limit,
@@ -216,6 +222,11 @@ func (r ReportList) GetHandle() string {
return r.Handle
}
// Auditable returns all auditable/loggable parameters
func (r ReportList) GetQuery() string {
return r.Query
}
// Auditable returns all auditable/loggable parameters
func (r ReportList) GetDeleted() uint {
return r.Deleted
@@ -259,6 +270,12 @@ func (r *ReportList) Fill(req *http.Request) (err error) {
return err
}
}
if val, ok := tmp["query"]; ok && len(val) > 0 {
r.Query, err = val[0], nil
if err != nil {
return err
}
}
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
r.Deleted, err = payload.ParseUint(val[0]), nil
if err != nil {
+1
View File
@@ -132,6 +132,7 @@ type (
ReportID []uint64 `json:"reportID"`
Handle string `json:"handle"`
Query string `json:"query"`
Deleted filter.State `json:"deleted"`