Added async support
This commit is contained in:
+3
-2
@@ -1510,6 +1510,7 @@ endpoints:
|
||||
entrypoint: apigwRoute
|
||||
authentication: []
|
||||
imports:
|
||||
- github.com/cortezaproject/corteza-server/system/types
|
||||
- github.com/cortezaproject/corteza-server/pkg/label
|
||||
apis:
|
||||
- name: list
|
||||
@@ -1534,9 +1535,9 @@ endpoints:
|
||||
post:
|
||||
- { name: endpoint, type: string, required: true, title: "Route endpoint" }
|
||||
- { name: method, type: string, title: "Route method" }
|
||||
- { name: debug, type: bool, title: "Debug route" }
|
||||
- { name: enabled, type: bool, title: "Is route enabled" }
|
||||
- { name: group, type: uint64, title: "Route group" }
|
||||
- { name: meta, type: "types.ApigwRouteMeta", title: "Route meta", parser: "types.ParseApigwRouteMeta" }
|
||||
- name: update
|
||||
method: PUT
|
||||
title: Update route details
|
||||
@@ -1546,9 +1547,9 @@ endpoints:
|
||||
post:
|
||||
- { name: endpoint, type: string, required: true, title: "Route endpoint" }
|
||||
- { name: method, type: string, title: "Route method" }
|
||||
- { name: debug, type: bool, title: "Debug route" }
|
||||
- { name: enabled, type: bool, title: "Is route enabled" }
|
||||
- { name: group, type: uint64, title: "Route group" }
|
||||
- { name: meta, type: "types.ApigwRouteMeta", title: "Route meta", parser: "types.ParseApigwRouteMeta" }
|
||||
- name: read
|
||||
method: GET
|
||||
title: Read route details
|
||||
|
||||
@@ -69,7 +69,6 @@ func (ctrl *ApigwRoute) Create(ctx context.Context, r *request.ApigwRouteCreate)
|
||||
q = &types.ApigwRoute{
|
||||
Endpoint: r.Endpoint,
|
||||
Method: r.Method,
|
||||
Debug: r.Debug,
|
||||
Enabled: r.Enabled,
|
||||
}
|
||||
)
|
||||
@@ -90,7 +89,6 @@ func (ctrl *ApigwRoute) Update(ctx context.Context, r *request.ApigwRouteUpdate)
|
||||
ID: r.RouteID,
|
||||
Endpoint: r.Endpoint,
|
||||
Method: r.Method,
|
||||
Debug: r.Debug,
|
||||
Group: uint64(r.Group),
|
||||
Enabled: r.Enabled,
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/cortezaproject/corteza-server/pkg/label"
|
||||
"github.com/cortezaproject/corteza-server/pkg/payload"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/go-chi/chi"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
@@ -87,11 +88,6 @@ type (
|
||||
// Route method
|
||||
Method string
|
||||
|
||||
// Debug POST parameter
|
||||
//
|
||||
// Debug route
|
||||
Debug bool
|
||||
|
||||
// Enabled POST parameter
|
||||
//
|
||||
// Is route enabled
|
||||
@@ -101,6 +97,11 @@ type (
|
||||
//
|
||||
// Route group
|
||||
Group uint64 `json:",string"`
|
||||
|
||||
// Meta POST parameter
|
||||
//
|
||||
// Route meta
|
||||
Meta types.ApigwRouteMeta
|
||||
}
|
||||
|
||||
ApigwRouteUpdate struct {
|
||||
@@ -119,11 +120,6 @@ type (
|
||||
// Route method
|
||||
Method string
|
||||
|
||||
// Debug POST parameter
|
||||
//
|
||||
// Debug route
|
||||
Debug bool
|
||||
|
||||
// Enabled POST parameter
|
||||
//
|
||||
// Is route enabled
|
||||
@@ -133,6 +129,11 @@ type (
|
||||
//
|
||||
// Route group
|
||||
Group uint64 `json:",string"`
|
||||
|
||||
// Meta POST parameter
|
||||
//
|
||||
// Route meta
|
||||
Meta types.ApigwRouteMeta
|
||||
}
|
||||
|
||||
ApigwRouteRead struct {
|
||||
@@ -296,9 +297,9 @@ func (r ApigwRouteCreate) Auditable() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"endpoint": r.Endpoint,
|
||||
"method": r.Method,
|
||||
"debug": r.Debug,
|
||||
"enabled": r.Enabled,
|
||||
"group": r.Group,
|
||||
"meta": r.Meta,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,11 +313,6 @@ func (r ApigwRouteCreate) GetMethod() string {
|
||||
return r.Method
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteCreate) GetDebug() bool {
|
||||
return r.Debug
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteCreate) GetEnabled() bool {
|
||||
return r.Enabled
|
||||
@@ -327,6 +323,11 @@ func (r ApigwRouteCreate) GetGroup() uint64 {
|
||||
return r.Group
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteCreate) GetMeta() types.ApigwRouteMeta {
|
||||
return r.Meta
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ApigwRouteCreate) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -362,13 +363,6 @@ func (r *ApigwRouteCreate) Fill(req *http.Request) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["debug"]; ok && len(val) > 0 {
|
||||
r.Debug, err = payload.ParseBool(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["enabled"]; ok && len(val) > 0 {
|
||||
r.Enabled, err = payload.ParseBool(val[0]), nil
|
||||
if err != nil {
|
||||
@@ -382,6 +376,18 @@ func (r *ApigwRouteCreate) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["meta[]"]; ok {
|
||||
r.Meta, err = types.ParseApigwRouteMeta(val)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if val, ok := req.Form["meta"]; ok {
|
||||
r.Meta, err = types.ParseApigwRouteMeta(val)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
@@ -398,9 +404,9 @@ func (r ApigwRouteUpdate) Auditable() map[string]interface{} {
|
||||
"routeID": r.RouteID,
|
||||
"endpoint": r.Endpoint,
|
||||
"method": r.Method,
|
||||
"debug": r.Debug,
|
||||
"enabled": r.Enabled,
|
||||
"group": r.Group,
|
||||
"meta": r.Meta,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,11 +425,6 @@ func (r ApigwRouteUpdate) GetMethod() string {
|
||||
return r.Method
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteUpdate) GetDebug() bool {
|
||||
return r.Debug
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteUpdate) GetEnabled() bool {
|
||||
return r.Enabled
|
||||
@@ -434,6 +435,11 @@ func (r ApigwRouteUpdate) GetGroup() uint64 {
|
||||
return r.Group
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ApigwRouteUpdate) GetMeta() types.ApigwRouteMeta {
|
||||
return r.Meta
|
||||
}
|
||||
|
||||
// Fill processes request and fills internal variables
|
||||
func (r *ApigwRouteUpdate) Fill(req *http.Request) (err error) {
|
||||
|
||||
@@ -469,13 +475,6 @@ func (r *ApigwRouteUpdate) Fill(req *http.Request) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["debug"]; ok && len(val) > 0 {
|
||||
r.Debug, err = payload.ParseBool(val[0]), nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["enabled"]; ok && len(val) > 0 {
|
||||
r.Enabled, err = payload.ParseBool(val[0]), nil
|
||||
if err != nil {
|
||||
@@ -489,6 +488,18 @@ func (r *ApigwRouteUpdate) Fill(req *http.Request) (err error) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["meta[]"]; ok {
|
||||
r.Meta, err = types.ParseApigwRouteMeta(val)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if val, ok := req.Form["meta"]; ok {
|
||||
r.Meta, err = types.ParseApigwRouteMeta(val)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -2,13 +2,14 @@ package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/cortezaproject/corteza-server/pkg/actionlog"
|
||||
intAuth "github.com/cortezaproject/corteza-server/pkg/auth"
|
||||
"github.com/cortezaproject/corteza-server/store"
|
||||
"github.com/cortezaproject/corteza-server/system/types"
|
||||
"github.com/getsentry/sentry-go"
|
||||
"go.uber.org/zap"
|
||||
"time"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"github.com/cortezaproject/corteza-server/pkg/filter"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
type (
|
||||
ApigwRoute struct {
|
||||
ID uint64 `json:"routeID,string"`
|
||||
Endpoint string `json:"endpoint"`
|
||||
Method string `json:"method"`
|
||||
Debug bool `json:"debug"`
|
||||
Enabled bool `json:"enabled"`
|
||||
Group uint64 `json:"group,string"`
|
||||
ID uint64 `json:"routeID,string"`
|
||||
Endpoint string `json:"endpoint"`
|
||||
Method string `json:"method"`
|
||||
Enabled bool `json:"enabled"`
|
||||
Group uint64 `json:"group,string"`
|
||||
Meta ApigwRouteMeta `json:"meta"`
|
||||
|
||||
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||
CreatedBy uint64 `json:"createdBy,string" `
|
||||
@@ -23,6 +26,11 @@ type (
|
||||
DeletedBy uint64 `json:"deletedBy,string,omitempty" `
|
||||
}
|
||||
|
||||
ApigwRouteMeta struct {
|
||||
Debug bool `json:"debug"`
|
||||
Async bool `json:"async"`
|
||||
}
|
||||
|
||||
ApigwRouteFilter struct {
|
||||
Route string `json:"route"`
|
||||
Group string `json:"group"`
|
||||
@@ -40,3 +48,22 @@ type (
|
||||
filter.Paging
|
||||
}
|
||||
)
|
||||
|
||||
func (cc *ApigwRouteMeta) 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:
|
||||
*cc = ApigwRouteMeta{}
|
||||
case []uint8:
|
||||
b := value.([]byte)
|
||||
if err := json.Unmarshal(b, cc); err != nil {
|
||||
return errors.Wrapf(err, "cannot scan '%v' into ApigwRouteMeta", string(b))
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cc ApigwRouteMeta) Value() (driver.Value, error) {
|
||||
return json.Marshal(cc)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,11 @@ import (
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
func ParseApigwRouteMeta(ss []string) (p ApigwRouteMeta, err error) {
|
||||
p = ApigwRouteMeta{}
|
||||
return p, parseStringsInput(ss, p)
|
||||
}
|
||||
|
||||
func ParseApigwfFilterParams(ss []string) (p ApigwFilterParams, err error) {
|
||||
p = ApigwFilterParams{}
|
||||
return p, parseStringsInput(ss, p)
|
||||
|
||||
Reference in New Issue
Block a user