From aed4fbc38fc5c2cfb76d5098a94cef5e042dd8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Guti=C3=A9rrez?= Date: Fri, 31 May 2024 15:02:22 -0600 Subject: [PATCH] [5.4] MSPB-367: Avoid removing duplicated feature codes (#540) --- submodules/strategy/strategy.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/submodules/strategy/strategy.js b/submodules/strategy/strategy.js index 3a589252..11e0b0df 100644 --- a/submodules/strategy/strategy.js +++ b/submodules/strategy/strategy.js @@ -2970,19 +2970,30 @@ define(function(require) { } }, callback); }, - function maybeDeleteWrongFeatureCodes(existing, callback) { - monster.parallel(_ + /** + * We need to validate if there are duplicated feature codes + * if duplicated, the ones created outside of SmartPBX will be removed + */ + function validateDuplicatedFeatureCodes(existing, callback) { + existing.duplicated = _ .chain(existing.createdOutsideApp) .filter(function(callflow) { - return _.some(self.featureCodeConfigs, _.flow([ - _.unary(_.partial(_.get, _, 'name')), + return _.some(existing.createdByApp, _.flow([ + _.unary(_.partial(_.get, _, 'featurecode.name')), _.partial(_.isEqual, _.get(callflow, 'featurecode.name')) ])); }) + .value(); + + callback(null, existing); + }, + function maybeDeleteWrongFeatureCodes(existing, callback) { + monster.parallel(_ + .chain(existing.duplicated) .map(deleteFeatureCodeFactory) .value() , function() { - callback(null, existing.createdByApp); + callback(null, _.concat(existing.createdByApp, existing.createdOutsideApp)); }); }, function maybeCreateMissingFeatureCodes(existing, callback) {