|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
|