Built motion from commit 911eb874.|2.6.31
[motion2.git] / server / api / cmHopperAdditionalPhone / cmHopperAdditionalPhone.rpc.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x8ad6=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','dialGlobalMaxRetry','findOne','countnoanswerretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','SwapAdditionalPhones','ContactId','duration','waitTime','isNil','scheduledat','minutes','add','phone','createdAt','updatedAt','sequelize','transaction','update','IncrementPreviewCounters','field','lodash','util','moment','bluebird'];(function(_0x33cd85,_0x513d9c){var _0x514f4c=function(_0x2fadcb){while(--_0x2fadcb){_0x33cd85['push'](_0x33cd85['shift']());}};_0x514f4c(++_0x513d9c);}(_0x8ad6,0x123));var _0x68ad=function(_0x1eecf1,_0x2029d6){_0x1eecf1=_0x1eecf1-0x0;var _0x4427be=_0x8ad6[_0x1eecf1];return _0x4427be;};'use strict';var _=require(_0x68ad('0x0'));var util=require(_0x68ad('0x1'));var moment=require(_0x68ad('0x2'));var BPromise=require(_0x68ad('0x3'));var rs=require(_0x68ad('0x4'));var fs=require('fs');var Redis=require(_0x68ad('0x5'));var db=require(_0x68ad('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x68ad('0x7'))(_0x68ad('0x8'));var config=require(_0x68ad('0x9'));var jayson=require(_0x68ad('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x150274,_0x3efd10,_0x11a465){return new BPromise(function(_0x4a57b1,_0x5de7d6){return client[_0x68ad('0xb')](_0x150274,_0x11a465)[_0x68ad('0xc')](function(_0x2fd475){logger[_0x68ad('0xd')](_0x68ad('0xe'),_0x3efd10,_0x68ad('0xf'));logger['debug'](_0x68ad('0x10'),_0x3efd10,_0x68ad('0xf'),JSON[_0x68ad('0x11')](_0x2fd475));if(_0x2fd475[_0x68ad('0x12')]){if(_0x2fd475[_0x68ad('0x12')][_0x68ad('0x13')]===0x1f4){logger['error'](_0x68ad('0xe'),_0x3efd10,_0x2fd475[_0x68ad('0x12')][_0x68ad('0x14')]);return _0x5de7d6(_0x2fd475[_0x68ad('0x12')]['message']);}logger['error'](_0x68ad('0xe'),_0x3efd10,_0x2fd475['error'][_0x68ad('0x14')]);return _0x4a57b1(_0x2fd475[_0x68ad('0x12')][_0x68ad('0x14')]);}else{logger[_0x68ad('0xd')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3efd10,'request\x20sent');_0x4a57b1(_0x2fd475[_0x68ad('0x15')]['message']);}})[_0x68ad('0x16')](function(_0x13907d){logger[_0x68ad('0x12')](_0x68ad('0xe'),_0x3efd10,_0x13907d);_0x5de7d6(_0x13907d);});});}exports[_0x68ad('0x17')]=function(_0x28d511){var _0x31ead4=this;return new Promise(function(_0x7afe28,_0xe6e297){return db[_0x68ad('0x18')]['findOne']({'raw':!![],'where':{'ContactId':_0x28d511[_0x68ad('0x19')]['ContactId'],'ListId':_0x28d511[_0x68ad('0x19')][_0x68ad('0x1a')],'VoiceQueueId':_0x28d511[_0x68ad('0x19')][_0x68ad('0x1b')]===undefined?null:_0x28d511[_0x68ad('0x19')][_0x68ad('0x1b')],'CampaignId':_0x28d511[_0x68ad('0x19')][_0x68ad('0x1c')]===undefined?null:_0x28d511[_0x68ad('0x19')][_0x68ad('0x1c')]}})['then'](function(_0x559f85){if(_0x559f85!=null){return db[_0x68ad('0x1d')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x559f85['id'],'OrderBy':{'$gt':_0x559f85[_0x68ad('0x1e')]}},'order':[[_0x68ad('0x1e'),_0x68ad('0x1f')]]})[_0x68ad('0xc')](function(_0x19c2f6){var _0x4a2bb6=0x0;if(_0x19c2f6){if(_0x19c2f6[_0x68ad('0x20')]+_0x19c2f6[_0x68ad('0x21')]+_0x19c2f6['countnoanswerretry']+_0x19c2f6[_0x68ad('0x22')]+_0x19c2f6[_0x68ad('0x23')]+_0x19c2f6['countabandonedretry']+_0x19c2f6['countmachineretry']+_0x19c2f6['countagentrejectretry']<_0x28d511['entity'][_0x68ad('0x24')])_0x4a2bb6=0x1;_0x7afe28({'additional':_0x4a2bb6});}else{return db[_0x68ad('0x1d')][_0x68ad('0x25')]({'raw':!![],'where':{'CmHopperId':_0x559f85['id']},'order':[[_0x68ad('0x1e'),_0x68ad('0x1f')]]})[_0x68ad('0xc')](function(_0x1f0028){var _0x4ddfa1=0x0;if(_0x1f0028){if(_0x1f0028['countbusyretry']+_0x1f0028[_0x68ad('0x21')]+_0x1f0028[_0x68ad('0x26')]+_0x1f0028[_0x68ad('0x22')]+_0x1f0028[_0x68ad('0x23')]+_0x1f0028[_0x68ad('0x27')]+_0x1f0028[_0x68ad('0x28')]+_0x1f0028[_0x68ad('0x29')]<_0x28d511[_0x68ad('0x2a')][_0x68ad('0x24')])_0x4ddfa1=0x1;_0x7afe28({'additional':_0x4ddfa1});}else{_0x7afe28({'additional':0x0});}})[_0x68ad('0x16')](function(_0x4e981){logger['error'](_0x68ad('0x17'),_0x4e981[_0x68ad('0x14')]);_0xe6e297(_0x31ead4[_0x68ad('0x12')](0x1f4,_0x4e981[_0x68ad('0x14')]));});}})[_0x68ad('0x16')](function(_0x595503){logger['error']('VerifyAdditionalPhones',_0x595503[_0x68ad('0x14')]);_0xe6e297(_0x31ead4[_0x68ad('0x12')](0x1f4,_0x595503['message']));});}else _0x7afe28({'additional':0x0});});});};exports[_0x68ad('0x2b')]=function(_0x541411){var _0x3bfe67=this;return new Promise(function(_0x8b7dd6,_0x4083ca){return db[_0x68ad('0x18')]['findOne']({'raw':!![],'where':{'ContactId':_0x541411[_0x68ad('0x19')][_0x68ad('0x2c')],'ListId':_0x541411[_0x68ad('0x19')][_0x68ad('0x1a')],'VoiceQueueId':_0x541411[_0x68ad('0x19')][_0x68ad('0x1b')]===undefined?null:_0x541411['body'][_0x68ad('0x1b')],'CampaignId':_0x541411[_0x68ad('0x19')][_0x68ad('0x1c')]===undefined?null:_0x541411[_0x68ad('0x19')]['CampaignId']}})[_0x68ad('0xc')](function(_0x743838){if(_0x743838!=null){return db[_0x68ad('0x1d')][_0x68ad('0x25')]({'raw':!![],'where':{'CmHopperId':_0x743838['id'],'OrderBy':{'$gte':_0x743838[_0x68ad('0x1e')]}},'order':[[_0x68ad('0x1e'),_0x68ad('0x1f')]]})[_0x68ad('0xc')](function(_0x1ec12a){if(_0x1ec12a)return activateAdditionalPhone(_0x743838,_0x541411[_0x68ad('0x19')],_0x1ec12a,_0x541411[_0x68ad('0x2d')],_0x541411[_0x68ad('0x2e')])[_0x68ad('0xc')](function(_0x4121fc){_0x8b7dd6(_0x4121fc);});else{return db[_0x68ad('0x1d')][_0x68ad('0x25')]({'raw':!![],'where':{'CmHopperId':_0x743838['id']},'order':[[_0x68ad('0x1e'),_0x68ad('0x1f')]]})[_0x68ad('0xc')](function(_0x3534ba){if(_0x3534ba)return activateAdditionalPhone(_0x743838,_0x541411['body'],_0x3534ba,_0x541411[_0x68ad('0x2d')],_0x541411[_0x68ad('0x2e')])[_0x68ad('0xc')](function(_0x1fdd9d){_0x8b7dd6(_0x1fdd9d);});else{_0x8b7dd6({'id':_0x743838['id'],'phone':''});}})[_0x68ad('0x16')](function(_0x19dc7e){logger[_0x68ad('0x12')]('VerifyAdditionalPhones',_0x19dc7e[_0x68ad('0x14')]);_0x4083ca(_0x3bfe67[_0x68ad('0x12')](0x1f4,_0x19dc7e[_0x68ad('0x14')]));});}})[_0x68ad('0x16')](function(_0x41a27a){logger[_0x68ad('0x12')]('VerifyAdditionalPhones',_0x41a27a[_0x68ad('0x14')]);_0x4083ca(_0x3bfe67['error'](0x1f4,_0x41a27a[_0x68ad('0x14')]));});}else _0x8b7dd6(0x1);});});};function activateAdditionalPhone(_0x39032d,_0x231ba9,_0x890bf5,_0x202667,_0x4827e7){return new Promise(function(_0x4e7d58,_0xed1137){var _0x18226c;if(_[_0x68ad('0x2f')](_0x890bf5['scheduledat'])){_0x890bf5[_0x68ad('0x30')]=moment();}if(moment()>moment(_0x890bf5['scheduledat'])){_0x18226c=moment()['add'](_0x4827e7||0x3,_0x68ad('0x31'));}else{if(_0x890bf5[_0x68ad('0x1e')]==0x0){_0x18226c=moment(_0x890bf5[_0x68ad('0x30')]);}else{_0x18226c=moment()[_0x68ad('0x32')](_0x4827e7||0x3,_0x68ad('0x31'));}}if(_[_0x68ad('0x2f')](_0x18226c)){_0x18226c=moment()['add'](_0x4827e7||0x3,_0x68ad('0x31'));}var _0x42d619={'phone':_0x39032d[_0x68ad('0x33')],'active':0x0,'OrderBy':_[_0x68ad('0x2f')](_0x39032d['OrderBy'])?0x0:_0x39032d[_0x68ad('0x1e')],'scheduledat':moment()['add'](_0x202667||0x1,_0x68ad('0x31')),'countbusyretry':_0x231ba9[_0x68ad('0x20')],'countcongestionretry':_0x231ba9[_0x68ad('0x21')],'countnoanswerretry':_0x231ba9[_0x68ad('0x26')],'countnosuchnumberretry':_0x231ba9[_0x68ad('0x22')],'countdropretry':_0x231ba9[_0x68ad('0x23')],'countabandonedretry':_0x231ba9['countabandonedretry'],'countmachineretry':_0x231ba9['countmachineretry'],'countagentrejectretry':_0x231ba9[_0x68ad('0x29')],'createdAt':_0x231ba9[_0x68ad('0x34')],'updatedAt':_0x231ba9[_0x68ad('0x35')]};var _0x18d05c={'CmHopperId':_0x39032d['id'],'phone':_0x890bf5[_0x68ad('0x33')],'active':0x0,'OrderBy':_[_0x68ad('0x2f')](_0x890bf5[_0x68ad('0x1e')])?0x0:_0x890bf5[_0x68ad('0x1e')],'scheduledat':_0x18226c,'countbusyretry':_0x890bf5[_0x68ad('0x20')],'countcongestionretry':_0x890bf5[_0x68ad('0x21')],'countnoanswerretry':_0x890bf5[_0x68ad('0x26')],'countnosuchnumberretry':_0x890bf5[_0x68ad('0x22')],'countdropretry':_0x890bf5['countdropretry'],'countabandonedretry':_0x890bf5[_0x68ad('0x27')],'countmachineretry':_0x890bf5[_0x68ad('0x28')],'countagentrejectretry':_0x890bf5[_0x68ad('0x29')],'createdAt':_0x890bf5[_0x68ad('0x34')],'updatedAt':_0x890bf5[_0x68ad('0x35')]};return db[_0x68ad('0x36')][_0x68ad('0x37')](function(_0x521b97){return db[_0x68ad('0x1d')]['update'](_0x42d619,{'where':{'id':_0x890bf5['id']}},{'transaction':_0x521b97})['then'](function(){return db[_0x68ad('0x18')][_0x68ad('0x38')](_0x18d05c,{'where':{'id':_0x39032d['id']}},{'transaction':_0x521b97});});})[_0x68ad('0xc')](function(_0x1699db){_0x4e7d58({'id':_0x39032d['id'],'phone':_0x890bf5[_0x68ad('0x33')]});})['catch'](function(_0x491657){logger['error']('activateAdditionalPhone',_0x491657[_0x68ad('0x14')]);_0xed1137({'error':_0x491657[_0x68ad('0x14')]});});});}exports[_0x68ad('0x39')]=function(_0x24f003){var _0x8150fd=this;return new Promise(function(_0xe87068,_0x2d69f5){return db[_0x68ad('0x18')][_0x68ad('0x38')](_0x24f003[_0x68ad('0x19')][_0x68ad('0x3a')],{'where':{'id':_0x24f003[_0x68ad('0x19')]['id']}})[_0x68ad('0xc')](function(_0x35a7a6){_0xe87068(_0x35a7a6);})['catch'](function(_0x319b18){logger[_0x68ad('0x12')](_0x68ad('0x39'),_0x319b18['message']);_0x2d69f5(_0x8150fd[_0x68ad('0x12')](0x1f4,_0x319b18[_0x68ad('0x14')]));});});};