From 0d2c3c4395086f98b219a3fb6e32717a1caef0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Mon, 5 Jun 2023 12:46:10 +0200 Subject: [PATCH] Re-evaluate model issues after applying alterations --- server/pkg/dal/service.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/server/pkg/dal/service.go b/server/pkg/dal/service.go index 9b3bf5f66..3c7e24211 100644 --- a/server/pkg/dal/service.go +++ b/server/pkg/dal/service.go @@ -815,9 +815,16 @@ func (svc *service) ApplyAlteration(ctx context.Context, alts ...*Alteration) (e return } - connectionID := alts[0].ConnectionID - resource := alts[0].Resource - resourceType := alts[0].ResourceType + var ( + connectionID = alts[0].ConnectionID + resource = alts[0].Resource + resourceType = alts[0].ResourceType + + issues = newIssueHelper() + ) + + defer svc.updateIssues(issues) + for _, alt := range alts { if alt.ConnectionID != connectionID { return nil, fmt.Errorf("alterations must be for the same connection") @@ -842,6 +849,12 @@ func (svc *service) ApplyAlteration(ctx context.Context, alts ...*Alteration) (e return nil, fmt.Errorf("model not found xd") } + issues = issues.addModel(model.ResourceID) + + // @todo consider adding some logging to validators + svc.validateModel(issues, connection, model, model) + svc.validateAttributes(issues, model, model.Attributes...) + return connection.connection.ApplyAlteration(ctx, model, alts...), nil }