3
0

Fix api-gw store tests, scanners & filters

This commit is contained in:
Denis Arh 2022-03-30 18:03:41 +02:00
parent 20ba475b2d
commit 8f1a953697
7 changed files with 29 additions and 27 deletions

View File

@ -7,6 +7,8 @@ package rdbms
//
import (
"strings"
automationType "github.com/cortezaproject/corteza-server/automation/types"
composeType "github.com/cortezaproject/corteza-server/compose/types"
federationType "github.com/cortezaproject/corteza-server/federation/types"
@ -17,7 +19,6 @@ import (
rbacType "github.com/cortezaproject/corteza-server/pkg/rbac"
systemType "github.com/cortezaproject/corteza-server/system/types"
"github.com/doug-martin/goqu/v9"
"strings"
)
type (
@ -224,10 +225,6 @@ func ApigwRouteFilter(f systemType.ApigwRouteFilter) (ee []goqu.Expression, _ sy
ee = append(ee, goqu.C("route").Eq(f.Route))
}
if val := strings.TrimSpace(f.Group); len(val) > 0 {
ee = append(ee, goqu.C("group").Eq(f.Group))
}
return ee, f, err
}

View File

@ -147,7 +147,7 @@ var (
apigwFilterSelectQuery = func(d goqu.DialectWrapper) *goqu.SelectDataset {
return d.Select(
"id",
"route",
"rel_route",
"weight",
"ref",
"kind",
@ -169,7 +169,7 @@ var (
return d.Insert(apigwFilterTable).
Rows(goqu.Record{
"id": res.ID,
"route": res.Route,
"rel_route": res.Route,
"weight": res.Weight,
"ref": res.Ref,
"kind": res.Kind,
@ -194,7 +194,7 @@ var (
OnConflict(
goqu.DoUpdate(target[1:],
goqu.Record{
"route": res.Route,
"rel_route": res.Route,
"weight": res.Weight,
"ref": res.Ref,
"kind": res.Kind,
@ -217,7 +217,7 @@ var (
apigwFilterUpdateQuery = func(d goqu.DialectWrapper, res *systemType.ApigwFilter) *goqu.UpdateDataset {
return d.Update(apigwFilterTable).
Set(goqu.Record{
"route": res.Route,
"rel_route": res.Route,
"weight": res.Weight,
"ref": res.Ref,
"kind": res.Kind,
@ -270,7 +270,7 @@ var (
"endpoint",
"method",
"enabled",
"group",
"rel_group",
"meta",
"created_at",
"updated_at",
@ -291,7 +291,7 @@ var (
"endpoint": res.Endpoint,
"method": res.Method,
"enabled": res.Enabled,
"group": res.Group,
"rel_group": res.Group,
"meta": res.Meta,
"created_at": res.CreatedAt,
"updated_at": res.UpdatedAt,
@ -315,7 +315,7 @@ var (
"endpoint": res.Endpoint,
"method": res.Method,
"enabled": res.Enabled,
"group": res.Group,
"rel_group": res.Group,
"meta": res.Meta,
"created_at": res.CreatedAt,
"updated_at": res.UpdatedAt,
@ -337,7 +337,7 @@ var (
"endpoint": res.Endpoint,
"method": res.Method,
"enabled": res.Enabled,
"group": res.Group,
"rel_group": res.Group,
"meta": res.Meta,
"created_at": res.CreatedAt,
"updated_at": res.UpdatedAt,

View File

@ -777,7 +777,7 @@ func (s Store) LookupApigwFilterByRoute(ctx context.Context, route uint64) (_ *s
rows *sql.Rows
aux = new(auxApigwFilter)
lookup = apigwFilterSelectQuery(s.config.Dialect).Where(
goqu.I("route").Eq(route),
goqu.I("rel_route").Eq(route),
).Limit(1)
)

View File

@ -11,7 +11,7 @@ apigw_filter: schema.#Resource & {
struct: {
id: schema.IdField
route: { goType: "uint64" }
route: { goType: "uint64", storeIdent: "rel_route" }
weight: { goType: "uint64" }
ref: {}
kind: {}

View File

@ -10,12 +10,12 @@ apigw_route: schema.#Resource & {
}
struct: {
id: schema.IdField
id: schema.IdField
endpoint: {}
method: {}
enabled: {goType: "bool"}
group: {goType: "uint64"}
meta: {goType: "types.ApigwRouteMeta"}
method: {}
enabled: {goType: "bool"}
group: {goType: "uint64", storeIdent: "rel_group"}
meta: {goType: "types.ApigwRouteMeta"}
created_at: schema.SortableTimestampField
updated_at: schema.SortableTimestampNilField
@ -28,13 +28,12 @@ apigw_route: schema.#Resource & {
filter: {
struct: {
route: {}
group: {}
deleted: {goType: "filter.State", storeIdent: "deleted_at"}
disabled: {goType: "filter.State", storeIdent: "enabled"}
}
byValue: ["route", "group"]
byValue: ["route"]
byNilState: ["deleted"]
byFalseState: ["disabled"]
}

View File

@ -46,12 +46,19 @@ type (
}
)
func (vv *ApigwFilterParams) Scan(value interface{}) (err error) {
if err := json.Unmarshal(value.([]byte), vv); err != nil {
return fmt.Errorf("cannot scan '%v' into FuncParams", value)
func (vv *ApigwFilterParams) Scan(value interface{}) error {
//lint:ignore S1034 This typecast is intentional, we need to get []byte out of a []uint8
switch value.(type) {
case nil:
*vv = ApigwFilterParams{}
case []uint8:
b := value.([]byte)
if err := json.Unmarshal(b, vv); err != nil {
return fmt.Errorf("cannot scan '%v' into ApigwFilterParams: %w", string(b), err)
}
}
return
return nil
}
func (vv ApigwFilterParams) Value() (driver.Value, error) {

View File

@ -33,7 +33,6 @@ type (
ApigwRouteFilter struct {
Route string `json:"route"`
Group string `json:"group"`
Deleted filter.State `json:"deleted"`
Disabled filter.State `json:"disabled"`