From cbc92dcc63f1955ef7dadcdfcb671532f4ce3e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Wed, 27 Jul 2022 15:20:52 +0200 Subject: [PATCH] Fix module field update logic when records exist The logic will need to be adjusted for DAL model issues, but the current functionality is preserved with this. --- compose/service/module.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/compose/service/module.go b/compose/service/module.go index 11e7d29c1..41eb84776 100644 --- a/compose/service/module.go +++ b/compose/service/module.go @@ -542,15 +542,20 @@ func (svc module) updater(ctx context.Context, namespaceID, moduleID uint64, act if changes&moduleFieldsChanged > 0 { var ( hasRecords bool - // set types.RecordSet + set types.RecordSet ) - // @todo !! - // if set, _, err = dalutils.ComposeRecordsList(ctx, svc.dal, m, types.RecordFilter{Paging: filter.Paging{Limit: 1}}); err != nil { - // return err - // } - - // hasRecords = len(set) > 0 + // @todo rethink how model issues and attempted module update with records should interact. + // this is a temporary solution but should be re-thinked. + modelIssues := svc.dal.SearchModelIssues(m.ModelConfig.ConnectionID, m.ID) + if len(modelIssues) == 0 { + if set, _, err = dalutils.ComposeRecordsList(ctx, svc.dal, m, types.RecordFilter{Paging: filter.Paging{Limit: 1}, Check: func(r *types.Record) (bool, error) { return true, nil }}); err != nil { + return err + } + hasRecords = len(set) > 0 + } else { + hasRecords = false + } if err = updateModuleFields(ctx, s, m, old, hasRecords); err != nil { return err