Added name, handle to exposed module
This commit is contained in:
@@ -168,6 +168,14 @@ endpoints:
|
||||
name: composeNamespaceID
|
||||
required: true
|
||||
title: Compose namespace id
|
||||
- type: string
|
||||
name: name
|
||||
required: true
|
||||
title: Module name
|
||||
- type: string
|
||||
name: handle
|
||||
required: true
|
||||
title: Module handle
|
||||
- type: types.ModuleFieldSet
|
||||
name: fields
|
||||
required: false
|
||||
@@ -195,6 +203,14 @@ endpoints:
|
||||
name: composeNamespaceID
|
||||
required: true
|
||||
title: Compose namespace id
|
||||
- type: string
|
||||
name: name
|
||||
required: true
|
||||
title: Module name
|
||||
- type: string
|
||||
name: handle
|
||||
required: true
|
||||
title: Module handle
|
||||
- type: types.ModuleFieldSet
|
||||
name: fields
|
||||
required: false
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/cortezaproject/corteza-server/federation/rest/request"
|
||||
"github.com/cortezaproject/corteza-server/federation/service"
|
||||
"github.com/cortezaproject/corteza-server/federation/types"
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
)
|
||||
|
||||
type (
|
||||
@@ -23,6 +24,8 @@ func (ctrl ManageStructure) CreateExposed(ctx context.Context, r *request.Manage
|
||||
NodeID: r.NodeID,
|
||||
ComposeModuleID: r.ComposeModuleID,
|
||||
ComposeNamespaceID: r.ComposeNamespaceID,
|
||||
Name: r.Name,
|
||||
Handle: r.Handle,
|
||||
Fields: r.Fields,
|
||||
}
|
||||
)
|
||||
@@ -40,6 +43,8 @@ func (ctrl ManageStructure) UpdateExposed(ctx context.Context, r *request.Manage
|
||||
NodeID: r.NodeID,
|
||||
ComposeModuleID: r.ComposeModuleID,
|
||||
ComposeNamespaceID: r.ComposeNamespaceID,
|
||||
Name: r.Name,
|
||||
Handle: r.Handle,
|
||||
Fields: r.Fields,
|
||||
}
|
||||
)
|
||||
@@ -62,7 +67,23 @@ func (ctrl ManageStructure) CreateMappings(ctx context.Context, r *request.Manag
|
||||
FieldMapping: r.Fields,
|
||||
}
|
||||
|
||||
return (service.DefaultModuleMapping).Create(ctx, mm)
|
||||
// check if it exists, do an upsert
|
||||
existing, _, err := service.DefaultModuleMapping.Find(ctx, types.ModuleMappingFilter{
|
||||
ComposeModuleID: r.ComposeModuleID,
|
||||
ComposeNamespaceID: r.ComposeNamespaceID,
|
||||
FederationModuleID: r.ModuleID,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(existing) > 0 {
|
||||
// do an update
|
||||
return service.DefaultModuleMapping.Update(ctx, mm)
|
||||
}
|
||||
|
||||
return service.DefaultModuleMapping.Create(ctx, mm)
|
||||
}
|
||||
|
||||
func (ctrl ManageStructure) ReadMappings(ctx context.Context, r *request.ManageStructureReadMappings) (interface{}, error) {
|
||||
@@ -90,5 +111,7 @@ func (ctrl ManageStructure) ListAll(ctx context.Context, r *request.ManageStruct
|
||||
return nil, errors.New("TODO - http 400 bad request - either use ?exposed or ?shared")
|
||||
}
|
||||
|
||||
spew.Dump("ERR", err)
|
||||
|
||||
return list, err
|
||||
}
|
||||
|
||||
@@ -58,6 +58,16 @@ type (
|
||||
// Compose namespace id
|
||||
ComposeNamespaceID uint64 `json:",string"`
|
||||
|
||||
// Name POST parameter
|
||||
//
|
||||
// Module name
|
||||
Name string
|
||||
|
||||
// Handle POST parameter
|
||||
//
|
||||
// Module handle
|
||||
Handle string
|
||||
|
||||
// Fields POST parameter
|
||||
//
|
||||
// Exposed module fields
|
||||
@@ -85,6 +95,16 @@ type (
|
||||
// Compose namespace id
|
||||
ComposeNamespaceID uint64 `json:",string"`
|
||||
|
||||
// Name POST parameter
|
||||
//
|
||||
// Module name
|
||||
Name string
|
||||
|
||||
// Handle POST parameter
|
||||
//
|
||||
// Module handle
|
||||
Handle string
|
||||
|
||||
// Fields POST parameter
|
||||
//
|
||||
// Exposed module fields
|
||||
@@ -240,6 +260,8 @@ func (r ManageStructureCreateExposed) Auditable() map[string]interface{} {
|
||||
"nodeID": r.NodeID,
|
||||
"composeModuleID": r.ComposeModuleID,
|
||||
"composeNamespaceID": r.ComposeNamespaceID,
|
||||
"name": r.Name,
|
||||
"handle": r.Handle,
|
||||
"fields": r.Fields,
|
||||
}
|
||||
}
|
||||
@@ -259,6 +281,16 @@ func (r ManageStructureCreateExposed) GetComposeNamespaceID() uint64 {
|
||||
return r.ComposeNamespaceID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureCreateExposed) GetName() string {
|
||||
return r.Name
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureCreateExposed) GetHandle() string {
|
||||
return r.Handle
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureCreateExposed) GetFields() types.ModuleFieldSet {
|
||||
return r.Fields
|
||||
@@ -298,6 +330,20 @@ func (r *ManageStructureCreateExposed) Fill(req *http.Request) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["name"]; ok && len(val) > 0 {
|
||||
r.Name, err = val[0], nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["handle"]; ok && len(val) > 0 {
|
||||
r.Handle, err = val[0], nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
//if val, ok := req.Form["fields[]"]; ok && len(val) > 0 {
|
||||
// r.Fields, err = types.ModuleFieldSet(val), nil
|
||||
// if err != nil {
|
||||
@@ -333,6 +379,8 @@ func (r ManageStructureUpdateExposed) Auditable() map[string]interface{} {
|
||||
"moduleID": r.ModuleID,
|
||||
"composeModuleID": r.ComposeModuleID,
|
||||
"composeNamespaceID": r.ComposeNamespaceID,
|
||||
"name": r.Name,
|
||||
"handle": r.Handle,
|
||||
"fields": r.Fields,
|
||||
}
|
||||
}
|
||||
@@ -357,6 +405,16 @@ func (r ManageStructureUpdateExposed) GetComposeNamespaceID() uint64 {
|
||||
return r.ComposeNamespaceID
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureUpdateExposed) GetName() string {
|
||||
return r.Name
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureUpdateExposed) GetHandle() string {
|
||||
return r.Handle
|
||||
}
|
||||
|
||||
// Auditable returns all auditable/loggable parameters
|
||||
func (r ManageStructureUpdateExposed) GetFields() types.ModuleFieldSet {
|
||||
return r.Fields
|
||||
@@ -396,6 +454,20 @@ func (r *ManageStructureUpdateExposed) Fill(req *http.Request) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["name"]; ok && len(val) > 0 {
|
||||
r.Name, err = val[0], nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if val, ok := req.Form["handle"]; ok && len(val) > 0 {
|
||||
r.Handle, err = val[0], nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
//if val, ok := req.Form["fields[]"]; ok && len(val) > 0 {
|
||||
// r.Fields, err = types.ModuleFieldSet(val), nil
|
||||
// if err != nil {
|
||||
|
||||
@@ -12,6 +12,8 @@ type (
|
||||
NodeID uint64 `json:"nodeID,string"`
|
||||
ComposeModuleID uint64 `json:"composeModuleID,string"`
|
||||
ComposeNamespaceID uint64 `json:"composeNamespaceID,string"`
|
||||
Handle string `json:"handle"`
|
||||
Name string `json:"name"`
|
||||
Fields ModuleFieldSet `json:"fields"`
|
||||
|
||||
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||
@@ -25,6 +27,8 @@ type (
|
||||
ComposeNamespaceID uint64 `json:"composeNamespaceID,string"`
|
||||
|
||||
LastSync uint64 `json:"lastSync"`
|
||||
Handle string `json:"handle"`
|
||||
Name string `json:"name"`
|
||||
Query string `json:"query"`
|
||||
|
||||
Check func(*ExposedModule) (bool, error) `json:"-"`
|
||||
|
||||
@@ -6,6 +6,8 @@ types:
|
||||
|
||||
fields:
|
||||
- { field: ID, isPrimaryKey: true, sortable: true }
|
||||
- { field: Handle }
|
||||
- { field: Name }
|
||||
- { field: NodeID }
|
||||
- { field: ComposeModuleID }
|
||||
- { field: ComposeNamespaceID }
|
||||
|
||||
@@ -43,9 +43,12 @@ func (s Store) SearchFederationExposedModules(ctx context.Context, f types.Expos
|
||||
// This tells us to flip the descending flag on all used sort keys
|
||||
reversedCursor := f.PageCursor != nil && f.PageCursor.Reverse
|
||||
|
||||
// Sorting and paging are both enabled in definition yaml file
|
||||
// {search: {enableSorting:true, enablePaging:true}}
|
||||
curSort := f.Sort.Clone()
|
||||
|
||||
// If paging with reverse cursor, change the sorting
|
||||
// direction for all columns we're sorting by
|
||||
curSort := f.Sort.Clone()
|
||||
if reversedCursor {
|
||||
curSort.Reverse()
|
||||
}
|
||||
@@ -375,6 +378,8 @@ func (s Store) internalFederationExposedModuleRowScanner(row rowScanner) (res *t
|
||||
} else {
|
||||
err = row.Scan(
|
||||
&res.ID,
|
||||
&res.Handle,
|
||||
&res.Name,
|
||||
&res.NodeID,
|
||||
&res.ComposeModuleID,
|
||||
&res.ComposeNamespaceID,
|
||||
@@ -422,6 +427,8 @@ func (Store) federationExposedModuleColumns(aa ...string) []string {
|
||||
|
||||
return []string{
|
||||
alias + "id",
|
||||
alias + "handle",
|
||||
alias + "name",
|
||||
alias + "rel_node",
|
||||
alias + "rel_compose_module",
|
||||
alias + "rel_compose_namespace",
|
||||
@@ -453,6 +460,8 @@ func (Store) sortableFederationExposedModuleColumns() []string {
|
||||
func (s Store) internalFederationExposedModuleEncoder(res *types.ExposedModule) store.Payload {
|
||||
return store.Payload{
|
||||
"id": res.ID,
|
||||
"handle": res.Handle,
|
||||
"name": res.Name,
|
||||
"rel_node": res.NodeID,
|
||||
"rel_compose_module": res.ComposeModuleID,
|
||||
"rel_compose_namespace": res.ComposeNamespaceID,
|
||||
|
||||
@@ -509,6 +509,8 @@ func (Schema) FederationModuleShared() *Table {
|
||||
func (Schema) FederationModuleExposed() *Table {
|
||||
return TableDef("federation_module_exposed",
|
||||
ID,
|
||||
ColumnDef("handle", ColumnTypeVarchar, ColumnTypeLength(handleLength)),
|
||||
ColumnDef("name", ColumnTypeText),
|
||||
ColumnDef("rel_node", ColumnTypeIdentifier),
|
||||
ColumnDef("rel_compose_module", ColumnTypeIdentifier),
|
||||
ColumnDef("rel_compose_namespace", ColumnTypeIdentifier),
|
||||
|
||||
Reference in New Issue
Block a user