From 2f860d591a73ee469859c3965b3dedfe2e7f967b Mon Sep 17 00:00:00 2001 From: Peter Grlica Date: Mon, 2 Nov 2020 18:04:39 +0100 Subject: [PATCH] Added update to shared module service --- federation/rest/manage_structure.go | 9 --------- federation/service/shared_module.go | 21 +++++++++++++++++++++ federation/types/shared_module.go | 5 +++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/federation/rest/manage_structure.go b/federation/rest/manage_structure.go index 8bc9c2efb..9b80a4758 100644 --- a/federation/rest/manage_structure.go +++ b/federation/rest/manage_structure.go @@ -26,15 +26,6 @@ func (ctrl ManageStructure) CreateExposed(ctx context.Context, r *request.Manage Fields: r.Fields, } ) - - if r.ComposeModuleID == 0 { - return nil, errors.New("TODO - http 400 bad request - use compose module id in request") - } - - if r.ComposeNamespaceID == 0 { - return nil, errors.New("TODO - http 400 bad request - use compose namespace id in request") - } - return (service.DefaultExposedModule).Create(ctx, mod) } diff --git a/federation/service/shared_module.go b/federation/service/shared_module.go index fb106e56e..49f40f4a3 100644 --- a/federation/service/shared_module.go +++ b/federation/service/shared_module.go @@ -22,6 +22,7 @@ type ( FindByID(ctx context.Context, nodeID uint64, moduleID uint64) (*types.SharedModule, error) FindByAny(ctx context.Context, nodeID uint64, identifier interface{}) (*types.SharedModule, error) Create(ctx context.Context, new *types.SharedModule) (*types.SharedModule, error) + Update(ctx context.Context, updated *types.SharedModule) (*types.SharedModule, error) // DeleteByID(ctx context.Context, nodeID, moduleID uint64) error } @@ -109,6 +110,26 @@ func (svc sharedModule) Create(ctx context.Context, new *types.SharedModule) (*t return new, svc.recordAction(ctx, aProps, SharedModuleActionCreate, err) } +func (svc sharedModule) Update(ctx context.Context, updated *types.SharedModule) (*types.SharedModule, error) { + var ( + aProps = &sharedModuleActionProps{module: updated} + ) + + err := store.Tx(ctx, svc.store, func(ctx context.Context, s store.Storer) (err error) { + updated.UpdatedAt = now() + + aProps.setModule(updated) + + if err = store.UpdateFederationSharedModule(ctx, s, updated); err != nil { + return err + } + + return nil + }) + + return updated, svc.recordAction(ctx, aProps, SharedModuleActionUpdate, err) +} + func (svc sharedModule) uniqueCheck(ctx context.Context, m *types.SharedModule) (err error) { f := types.SharedModuleFilter{ NodeID: m.NodeID, diff --git a/federation/types/shared_module.go b/federation/types/shared_module.go index 1be463bcc..cb0b22fe7 100644 --- a/federation/types/shared_module.go +++ b/federation/types/shared_module.go @@ -21,8 +21,9 @@ type ( } SharedModuleFilter struct { - NodeID uint64 `json:"nodeID,string"` - Query string `json:"query"` + NodeID uint64 `json:"nodeID,string"` + ExternalFederationModuleID uint64 `json:"externalFederationModuleID,string"` + Query string `json:"query"` Handle string `json:"handle"` Name string `json:"name"`