From b02ac0c1b51e21e09bd4079676c68d82e73f813c Mon Sep 17 00:00:00 2001 From: Peter Grlica Date: Mon, 9 Nov 2020 17:16:37 +0100 Subject: [PATCH] Added update to module mappings, updated generated files --- federation/service/module_mapping.go | 30 +++++++++++++++++++ store/rdbms/federation_module_mappings.gen.go | 5 +++- store/rdbms/federation_nodes_sync.gen.go | 5 +++- store/rdbms/federation_shared_modules.gen.go | 5 +++- 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/federation/service/module_mapping.go b/federation/service/module_mapping.go index 8edbd45bc..305865f03 100644 --- a/federation/service/module_mapping.go +++ b/federation/service/module_mapping.go @@ -21,6 +21,7 @@ type ( Find(ctx context.Context, filter types.ModuleMappingFilter) (types.ModuleMappingSet, types.ModuleMappingFilter, error) FindByID(ctx context.Context, federationModuleID uint64) (*types.ModuleMapping, error) Create(ctx context.Context, new *types.ModuleMapping) (*types.ModuleMapping, error) + Update(ctx context.Context, updated *types.ModuleMapping) (*types.ModuleMapping, error) // FindByAny(ctx context.Context, nodeID uint64, identifier interface{}) (*types.ExposedModule, error) // DeleteByID(ctx context.Context, federationModuleID uint64) error } @@ -132,6 +133,35 @@ func (svc moduleMapping) Create(ctx context.Context, new *types.ModuleMapping) ( return new, svc.recordAction(ctx, aProps, ModuleMappingActionCreate, err) } +func (svc moduleMapping) Update(ctx context.Context, updated *types.ModuleMapping) (*types.ModuleMapping, error) { + var ( + aProps = &moduleMappingActionProps{changed: updated} + ) + + err := store.Tx(ctx, svc.store, func(ctx context.Context, s store.Storer) (err error) { + // TODO + // if !svc.ac.CanCreateFederationExposedModule(ctx, ns) { + // return ExposedModuleErrNotAllowedToCreate() + // } + + if _, err := svc.namespace.With(ctx).FindByID(updated.ComposeNamespaceID); err != nil { + return ModuleMappingErrComposeNamespaceNotFound() + } + + if _, err := svc.module.With(ctx).FindByID(updated.ComposeNamespaceID, updated.ComposeModuleID); err != nil { + return ModuleMappingErrComposeModuleNotFound() + } + + if err = store.UpdateFederationModuleMapping(ctx, s, updated); err != nil { + return err + } + + return nil + }) + + return updated, svc.recordAction(ctx, aProps, ModuleMappingActionUpdate, err) +} + func (svc moduleMapping) uniqueCheck(ctx context.Context, m *types.ModuleMapping) (err error) { f := types.ModuleMappingFilter{ FederationModuleID: m.FederationModuleID, diff --git a/store/rdbms/federation_module_mappings.gen.go b/store/rdbms/federation_module_mappings.gen.go index c31910455..5226a4873 100644 --- a/store/rdbms/federation_module_mappings.gen.go +++ b/store/rdbms/federation_module_mappings.gen.go @@ -43,9 +43,12 @@ func (s Store) SearchFederationModuleMappings(ctx context.Context, f types.Modul // 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() } diff --git a/store/rdbms/federation_nodes_sync.gen.go b/store/rdbms/federation_nodes_sync.gen.go index 555dd8560..beb68381c 100644 --- a/store/rdbms/federation_nodes_sync.gen.go +++ b/store/rdbms/federation_nodes_sync.gen.go @@ -43,9 +43,12 @@ func (s Store) SearchFederationNodesSyncs(ctx context.Context, f types.NodeSyncF // 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() } diff --git a/store/rdbms/federation_shared_modules.gen.go b/store/rdbms/federation_shared_modules.gen.go index 9a4594c55..1ff4af9a6 100644 --- a/store/rdbms/federation_shared_modules.gen.go +++ b/store/rdbms/federation_shared_modules.gen.go @@ -43,9 +43,12 @@ func (s Store) SearchFederationSharedModules(ctx context.Context, f types.Shared // 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() }