Browse Source

UI-1295: now automatically creates a menu for each of the 4 call handling sections at the first load of MainNumber

4.3
Maxime Roux 11 years ago
parent
commit
eecf0ce044
1 changed files with 115 additions and 58 deletions
  1. +115
    -58
      submodules/strategy/strategy.js

+ 115
- 58
submodules/strategy/strategy.js View File

@ -1661,11 +1661,12 @@ define(function(require){
accountId: self.accountId,
filters: {
'has_value':'type',
'key_missing':'owner_id'
'key_missing':['owner_id', 'group_id']
}
},
success: function(data, status) {
var parallelRequests = {};
var parallelRequests = {},
menuRequests = {};
_.each(data.data, function(val, key) {
if(val.type === "main" || val.type === "conference")
@ -1712,85 +1713,141 @@ define(function(require){
}
_.each(self.subCallflowsLabel, function(val) {
if(!parallelRequests[val]) {
parallelRequests[val] = function(callback) {
var menuName = val+'Menu';
if(!parallelRequests[menuName]) {
menuRequests[menuName] = function(callback) {
self.callApi({
resource: 'callflow.create',
resource: 'menu.create',
data: {
accountId: self.accountId,
data: {
contact_list: {
exclude: false
name: menuName,
record_pin: monster.util.randomString(4, '1234567890'),
media: {
exit_media: true,
invalid_media: true,
transfer_media: true
},
numbers: [val],
type: "main",
flow: {
children: {},
data: {},
module: "temporal_route"
}
retries: 3,
max_extension_length: 4,
type: "main"
}
},
success: function(data, status) {
callback(null, data.data);
success: function(menuData, status) {
self.callApi({
resource: 'callflow.create',
data: {
accountId: self.accountId,
data: {
contact_list: {
exclude: false
},
numbers: [menuName],
type: "main",
flow: {
children: {},
data: {
id: menuData.data.id
},
module: "menu"
}
}
},
success: function(data, status) {
callback && callback(null, data.data);
}
});
}
});
}
}
});
monster.parallel(parallelRequests, function(err, results) {
if(!parallelRequests["MainCallflow"]) {
self.callApi({
resource: 'callflow.create',
data: {
accountId: self.accountId,
data: {
contact_list: {
exclude: false
},
numbers: ["0"],
name: "MainCallflow",
type: "main",
flow: {
children: {
'_': {
monster.parallel(menuRequests, function(err, results) {
var mainCallflows = results;
_.each(self.subCallflowsLabel, function(val) {
if(!parallelRequests[val]) {
parallelRequests[val] = function(callback) {
self.callApi({
resource: 'callflow.create',
data: {
accountId: self.accountId,
data: {
contact_list: {
exclude: false
},
numbers: [val],
type: "main",
flow: {
children: {},
data: {
id: results["MainOpenHours"].id
id: mainCallflows[val+'Menu'].id
},
module:"callflow"
module: "callflow"
}
},
data: {},
module: "temporal_route"
}
},
success: function(data, status) {
callback(null, data.data);
}
}
},
success: function(data, status) {
/* If they don't have a main callflow, check if the feature codes are enabled, and create them if not */
self.strategyCreateFeatureCodes(function() {
results["MainCallflow"] = data.data;
callback(results);
});
}
});
} else {
delete results["MainCallflow"].flow.data.timezone;
if(results["MainCallflow"].numbers[0] !== '0') {
if(results["MainCallflow"].numbers[0] === 'undefined') {
results["MainCallflow"].numbers[0] = '0';
}
});
monster.parallel(parallelRequests, function(err, results) {
if(!parallelRequests["MainCallflow"]) {
self.callApi({
resource: 'callflow.create',
data: {
accountId: self.accountId,
data: {
contact_list: {
exclude: false
},
numbers: ["0"],
name: "MainCallflow",
type: "main",
flow: {
children: {
'_': {
children: {},
data: {
id: results["MainOpenHours"].id
},
module:"callflow"
}
},
data: {},
module: "temporal_route"
}
}
},
success: function(data, status) {
/* If they don't have a main callflow, check if the feature codes are enabled, and create them if not */
self.strategyCreateFeatureCodes(function() {
results["MainCallflow"] = data.data;
callback($.extend(true, mainCallflows, results));
});
}
});
} else {
delete results["MainCallflow"].flow.data.timezone;
if(results["MainCallflow"].numbers[0] !== '0') {
if(results["MainCallflow"].numbers[0] === 'undefined') {
results["MainCallflow"].numbers[0] = '0';
} else {
results["MainCallflow"].numbers.splice(0, 0, '0');
}
self.strategyUpdateCallflow(results["MainCallflow"], function(updatedCallflow) {
results["MainCallflow"] = updatedCallflow;
callback($.extend(true, mainCallflows, results));
})
} else {
results["MainCallflow"].numbers.splice(0, 0, '0');
callback($.extend(true, mainCallflows, results));
}
self.strategyUpdateCallflow(results["MainCallflow"], function(updatedCallflow) {
results["MainCallflow"] = updatedCallflow;
callback(results);
})
} else {
callback(results);
}
}
});
});
}
});


Loading…
Cancel
Save