Built motion from commit e6806ed6.|2.6.0
[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 _0x2195=['body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','VerifyAdditionalPhones','catch','duration','waitTime','scheduledat','minutes','isNil','add','phone','createdAt','updatedAt','countabandonedretry','sequelize','update','activateAdditionalPhone','IncrementPreviewCounters','lodash','util','moment','bluebird','randomstring','ioredis','../../config/environment','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','CmHopper','findOne'];(function(_0x5f3ff6,_0x436c15){var _0x2b813c=function(_0x153d17){while(--_0x153d17){_0x5f3ff6['push'](_0x5f3ff6['shift']());}};_0x2b813c(++_0x436c15);}(_0x2195,0x8e));var _0x5219=function(_0x2daab7,_0x377337){_0x2daab7=_0x2daab7-0x0;var _0x1714da=_0x2195[_0x2daab7];return _0x1714da;};'use strict';var _=require(_0x5219('0x0'));var util=require(_0x5219('0x1'));var moment=require(_0x5219('0x2'));var BPromise=require(_0x5219('0x3'));var rs=require(_0x5219('0x4'));var fs=require('fs');var Redis=require(_0x5219('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x5219('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x5219('0x7')][_0x5219('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x11b98f,_0x16181d,_0x28e158){return new BPromise(function(_0x3587d5,_0x28b72f){return client[_0x5219('0x9')](_0x11b98f,_0x28e158)[_0x5219('0xa')](function(_0x36fe2b){logger[_0x5219('0xb')](_0x5219('0xc'),_0x16181d,'request\x20sent');logger[_0x5219('0xd')](_0x5219('0xe'),_0x16181d,_0x5219('0xf'),JSON[_0x5219('0x10')](_0x36fe2b));if(_0x36fe2b[_0x5219('0x11')]){if(_0x36fe2b[_0x5219('0x11')][_0x5219('0x12')]===0x1f4){logger[_0x5219('0x11')](_0x5219('0xc'),_0x16181d,_0x36fe2b[_0x5219('0x11')]['message']);return _0x28b72f(_0x36fe2b[_0x5219('0x11')][_0x5219('0x13')]);}logger[_0x5219('0x11')](_0x5219('0xc'),_0x16181d,_0x36fe2b[_0x5219('0x11')]['message']);return _0x3587d5(_0x36fe2b[_0x5219('0x11')]['message']);}else{logger[_0x5219('0xb')](_0x5219('0xc'),_0x16181d,'request\x20sent');_0x3587d5(_0x36fe2b[_0x5219('0x14')][_0x5219('0x13')]);}})['catch'](function(_0x528dd3){logger[_0x5219('0x11')](_0x5219('0xc'),_0x16181d,_0x528dd3);_0x28b72f(_0x528dd3);});});}exports['VerifyAdditionalPhones']=function(_0x351f27){var _0x196a92=this;return new Promise(function(_0x262401,_0x55ae88){return db[_0x5219('0x15')][_0x5219('0x16')]({'raw':!![],'where':{'ContactId':_0x351f27['body']['ContactId'],'ListId':_0x351f27[_0x5219('0x17')][_0x5219('0x18')],'VoiceQueueId':_0x351f27[_0x5219('0x17')][_0x5219('0x19')]===undefined?null:_0x351f27[_0x5219('0x17')]['VoiceQueueId'],'CampaignId':_0x351f27['body'][_0x5219('0x1a')]===undefined?null:_0x351f27[_0x5219('0x17')][_0x5219('0x1a')]}})[_0x5219('0xa')](function(_0x227caa){if(_0x227caa!=null){return db[_0x5219('0x1b')][_0x5219('0x16')]({'raw':!![],'where':{'CmHopperId':_0x227caa['id'],'OrderBy':{'$gt':_0x227caa[_0x5219('0x1c')]}},'order':[[_0x5219('0x1c'),_0x5219('0x1d')]]})[_0x5219('0xa')](function(_0x2a3a2c){var _0x7678aa=0x0;if(_0x2a3a2c){if(_0x2a3a2c[_0x5219('0x1e')]+_0x2a3a2c[_0x5219('0x1f')]+_0x2a3a2c[_0x5219('0x20')]+_0x2a3a2c[_0x5219('0x21')]+_0x2a3a2c[_0x5219('0x22')]+_0x2a3a2c['countabandonedretry']+_0x2a3a2c[_0x5219('0x23')]+_0x2a3a2c[_0x5219('0x24')]<_0x351f27[_0x5219('0x25')]['dialGlobalMaxRetry'])_0x7678aa=0x1;_0x262401({'additional':_0x7678aa});}else{return db[_0x5219('0x1b')][_0x5219('0x16')]({'raw':!![],'where':{'CmHopperId':_0x227caa['id']},'order':[[_0x5219('0x1c'),_0x5219('0x1d')]]})[_0x5219('0xa')](function(_0x47be63){var _0x560610=0x0;if(_0x47be63){if(_0x47be63[_0x5219('0x1e')]+_0x47be63['countcongestionretry']+_0x47be63['countnoanswerretry']+_0x47be63[_0x5219('0x21')]+_0x47be63[_0x5219('0x22')]+_0x47be63['countabandonedretry']+_0x47be63['countmachineretry']+_0x47be63['countagentrejectretry']<_0x351f27[_0x5219('0x25')][_0x5219('0x26')])_0x560610=0x1;_0x262401({'additional':_0x560610});}else{_0x262401({'additional':0x0});}})['catch'](function(_0x2c29a6){logger[_0x5219('0x11')](_0x5219('0x27'),_0x2c29a6[_0x5219('0x13')]);_0x55ae88(_0x196a92['error'](0x1f4,_0x2c29a6[_0x5219('0x13')]));});}})[_0x5219('0x28')](function(_0x41df24){logger['error']('VerifyAdditionalPhones',_0x41df24[_0x5219('0x13')]);_0x55ae88(_0x196a92['error'](0x1f4,_0x41df24[_0x5219('0x13')]));});}else _0x262401({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x49871f){var _0x1b9084=this;return new Promise(function(_0x5d82fb,_0x16a97c){return db['CmHopper'][_0x5219('0x16')]({'raw':!![],'where':{'ContactId':_0x49871f[_0x5219('0x17')]['ContactId'],'ListId':_0x49871f['body'][_0x5219('0x18')],'VoiceQueueId':_0x49871f['body'][_0x5219('0x19')]===undefined?null:_0x49871f[_0x5219('0x17')]['VoiceQueueId'],'CampaignId':_0x49871f[_0x5219('0x17')][_0x5219('0x1a')]===undefined?null:_0x49871f[_0x5219('0x17')][_0x5219('0x1a')]}})[_0x5219('0xa')](function(_0x424543){if(_0x424543!=null){return db[_0x5219('0x1b')][_0x5219('0x16')]({'raw':!![],'where':{'CmHopperId':_0x424543['id'],'OrderBy':{'$gte':_0x424543[_0x5219('0x1c')]}},'order':[[_0x5219('0x1c'),_0x5219('0x1d')]]})[_0x5219('0xa')](function(_0x50bc85){if(_0x50bc85)return activateAdditionalPhone(_0x424543,_0x49871f[_0x5219('0x17')],_0x50bc85,_0x49871f[_0x5219('0x29')],_0x49871f[_0x5219('0x2a')])[_0x5219('0xa')](function(_0x3d6094){_0x5d82fb(_0x3d6094);});else{return db[_0x5219('0x1b')][_0x5219('0x16')]({'raw':!![],'where':{'CmHopperId':_0x424543['id']},'order':[[_0x5219('0x1c'),_0x5219('0x1d')]]})[_0x5219('0xa')](function(_0x5bdfcc){if(_0x5bdfcc)return activateAdditionalPhone(_0x424543,_0x49871f[_0x5219('0x17')],_0x5bdfcc,_0x49871f[_0x5219('0x29')],_0x49871f[_0x5219('0x2a')])[_0x5219('0xa')](function(_0x38fd9f){_0x5d82fb(_0x38fd9f);});else{_0x5d82fb({'id':_0x424543['id'],'phone':''});}})[_0x5219('0x28')](function(_0x4eb839){logger[_0x5219('0x11')]('VerifyAdditionalPhones',_0x4eb839[_0x5219('0x13')]);_0x16a97c(_0x1b9084[_0x5219('0x11')](0x1f4,_0x4eb839[_0x5219('0x13')]));});}})[_0x5219('0x28')](function(_0xdd5008){logger[_0x5219('0x11')](_0x5219('0x27'),_0xdd5008[_0x5219('0x13')]);_0x16a97c(_0x1b9084[_0x5219('0x11')](0x1f4,_0xdd5008[_0x5219('0x13')]));});}else _0x5d82fb(0x1);});});};function activateAdditionalPhone(_0x595661,_0x31f6ee,_0x25702f,_0x5a06bf,_0x209c00){return new Promise(function(_0x3e766a,_0x8087f2){var _0x57fd5b;if(_['isNil'](_0x25702f[_0x5219('0x2b')])){_0x25702f[_0x5219('0x2b')]=moment();}if(moment()>moment(_0x25702f['scheduledat'])){_0x57fd5b=moment()['add'](_0x209c00||0x3,_0x5219('0x2c'));}else{if(_0x25702f[_0x5219('0x1c')]==0x0){_0x57fd5b=moment(_0x25702f[_0x5219('0x2b')]);}else{_0x57fd5b=moment()['add'](_0x209c00||0x3,_0x5219('0x2c'));}}if(_[_0x5219('0x2d')](_0x57fd5b)){_0x57fd5b=moment()[_0x5219('0x2e')](_0x209c00||0x3,_0x5219('0x2c'));}var _0x501974={'phone':_0x595661[_0x5219('0x2f')],'active':0x0,'OrderBy':_[_0x5219('0x2d')](_0x595661[_0x5219('0x1c')])?0x0:_0x595661[_0x5219('0x1c')],'scheduledat':moment()['add'](_0x5a06bf||0x1,_0x5219('0x2c')),'countbusyretry':_0x31f6ee[_0x5219('0x1e')],'countcongestionretry':_0x31f6ee[_0x5219('0x1f')],'countnoanswerretry':_0x31f6ee[_0x5219('0x20')],'countnosuchnumberretry':_0x31f6ee[_0x5219('0x21')],'countdropretry':_0x31f6ee[_0x5219('0x22')],'countabandonedretry':_0x31f6ee['countabandonedretry'],'countmachineretry':_0x31f6ee[_0x5219('0x23')],'countagentrejectretry':_0x31f6ee[_0x5219('0x24')],'createdAt':_0x31f6ee[_0x5219('0x30')],'updatedAt':_0x31f6ee[_0x5219('0x31')]};var _0x28b597={'CmHopperId':_0x595661['id'],'phone':_0x25702f[_0x5219('0x2f')],'active':0x0,'OrderBy':_['isNil'](_0x25702f['OrderBy'])?0x0:_0x25702f[_0x5219('0x1c')],'scheduledat':_0x57fd5b,'countbusyretry':_0x25702f[_0x5219('0x1e')],'countcongestionretry':_0x25702f[_0x5219('0x1f')],'countnoanswerretry':_0x25702f['countnoanswerretry'],'countnosuchnumberretry':_0x25702f[_0x5219('0x21')],'countdropretry':_0x25702f[_0x5219('0x22')],'countabandonedretry':_0x25702f[_0x5219('0x32')],'countmachineretry':_0x25702f['countmachineretry'],'countagentrejectretry':_0x25702f[_0x5219('0x24')],'createdAt':_0x25702f[_0x5219('0x30')],'updatedAt':_0x25702f[_0x5219('0x31')]};return db[_0x5219('0x33')]['transaction'](function(_0x1b0d93){return db[_0x5219('0x1b')]['update'](_0x501974,{'where':{'id':_0x25702f['id']}},{'transaction':_0x1b0d93})[_0x5219('0xa')](function(){return db[_0x5219('0x15')][_0x5219('0x34')](_0x28b597,{'where':{'id':_0x595661['id']}},{'transaction':_0x1b0d93});});})[_0x5219('0xa')](function(_0x7fe262){_0x3e766a({'id':_0x595661['id'],'phone':_0x25702f[_0x5219('0x2f')]});})[_0x5219('0x28')](function(_0x19e63a){logger[_0x5219('0x11')](_0x5219('0x35'),_0x19e63a[_0x5219('0x13')]);_0x8087f2({'error':_0x19e63a[_0x5219('0x13')]});});});}exports[_0x5219('0x36')]=function(_0x434872){var _0x27befd=this;return new Promise(function(_0x17497f,_0x4981c9){return db[_0x5219('0x15')][_0x5219('0x34')](_0x434872[_0x5219('0x17')]['field'],{'where':{'id':_0x434872[_0x5219('0x17')]['id']}})['then'](function(_0x2bfd0){_0x17497f(_0x2bfd0);})[_0x5219('0x28')](function(_0x36be0a){logger[_0x5219('0x11')]('IncrementPreviewCounters',_0x36be0a['message']);_0x4981c9(_0x27befd['error'](0x1f4,_0x36be0a[_0x5219('0x13')]));});});};