Built motion from commit fd055180.|2.6.30
[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 _0xc007=['CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countnoanswerretry','countdropretry','countabandonedretry','countagentrejectretry','entity','dialGlobalMaxRetry','countnosuchnumberretry','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','phone','countmachineretry','updatedAt','countcongestionretry','createdAt','sequelize','transaction','update','IncrementPreviewCounters','lodash','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info'];(function(_0x4c075b,_0x56c2e7){var _0x228448=function(_0x37c25c){while(--_0x37c25c){_0x4c075b['push'](_0x4c075b['shift']());}};_0x228448(++_0x56c2e7);}(_0xc007,0x183));var _0x7c00=function(_0x8a8a47,_0x2e7105){_0x8a8a47=_0x8a8a47-0x0;var _0x45a1c0=_0xc007[_0x8a8a47];return _0x45a1c0;};'use strict';var _=require(_0x7c00('0x0'));var util=require('util');var moment=require(_0x7c00('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7c00('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x7c00('0x3'));var logger=require(_0x7c00('0x4'))(_0x7c00('0x5'));var config=require(_0x7c00('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x7c00('0x7')][_0x7c00('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x39df74,_0x15037b,_0x423fc8){return new BPromise(function(_0x53d7bf,_0x232ff6){return client[_0x7c00('0x9')](_0x39df74,_0x423fc8)[_0x7c00('0xa')](function(_0x5b9e62){logger[_0x7c00('0xb')](_0x7c00('0xc'),_0x15037b,'request\x20sent');logger[_0x7c00('0xd')](_0x7c00('0xe'),_0x15037b,_0x7c00('0xf'),JSON[_0x7c00('0x10')](_0x5b9e62));if(_0x5b9e62[_0x7c00('0x11')]){if(_0x5b9e62['error'][_0x7c00('0x12')]===0x1f4){logger[_0x7c00('0x11')](_0x7c00('0xc'),_0x15037b,_0x5b9e62[_0x7c00('0x11')][_0x7c00('0x13')]);return _0x232ff6(_0x5b9e62[_0x7c00('0x11')][_0x7c00('0x13')]);}logger[_0x7c00('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x15037b,_0x5b9e62[_0x7c00('0x11')][_0x7c00('0x13')]);return _0x53d7bf(_0x5b9e62[_0x7c00('0x11')]['message']);}else{logger[_0x7c00('0xb')](_0x7c00('0xc'),_0x15037b,_0x7c00('0xf'));_0x53d7bf(_0x5b9e62[_0x7c00('0x14')][_0x7c00('0x13')]);}})[_0x7c00('0x15')](function(_0x1950da){logger[_0x7c00('0x11')](_0x7c00('0xc'),_0x15037b,_0x1950da);_0x232ff6(_0x1950da);});});}exports[_0x7c00('0x16')]=function(_0x23794a){var _0x262576=this;return new Promise(function(_0x10819f,_0x5a985c){return db[_0x7c00('0x17')][_0x7c00('0x18')]({'raw':!![],'where':{'ContactId':_0x23794a[_0x7c00('0x19')][_0x7c00('0x1a')],'ListId':_0x23794a[_0x7c00('0x19')][_0x7c00('0x1b')],'VoiceQueueId':_0x23794a[_0x7c00('0x19')]['VoiceQueueId']===undefined?null:_0x23794a[_0x7c00('0x19')][_0x7c00('0x1c')],'CampaignId':_0x23794a[_0x7c00('0x19')][_0x7c00('0x1d')]===undefined?null:_0x23794a[_0x7c00('0x19')][_0x7c00('0x1d')]}})[_0x7c00('0xa')](function(_0x13beda){if(_0x13beda!=null){return db[_0x7c00('0x1e')][_0x7c00('0x18')]({'raw':!![],'where':{'CmHopperId':_0x13beda['id'],'OrderBy':{'$gt':_0x13beda[_0x7c00('0x1f')]}},'order':[['OrderBy',_0x7c00('0x20')]]})[_0x7c00('0xa')](function(_0x26e02d){var _0xca9d6a=0x0;if(_0x26e02d){if(_0x26e02d[_0x7c00('0x21')]+_0x26e02d['countcongestionretry']+_0x26e02d[_0x7c00('0x22')]+_0x26e02d['countnosuchnumberretry']+_0x26e02d[_0x7c00('0x23')]+_0x26e02d[_0x7c00('0x24')]+_0x26e02d['countmachineretry']+_0x26e02d[_0x7c00('0x25')]<_0x23794a[_0x7c00('0x26')][_0x7c00('0x27')])_0xca9d6a=0x1;_0x10819f({'additional':_0xca9d6a});}else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x13beda['id']},'order':[[_0x7c00('0x1f'),_0x7c00('0x20')]]})[_0x7c00('0xa')](function(_0x4669cb){var _0x297465=0x0;if(_0x4669cb){if(_0x4669cb['countbusyretry']+_0x4669cb['countcongestionretry']+_0x4669cb[_0x7c00('0x22')]+_0x4669cb[_0x7c00('0x28')]+_0x4669cb['countdropretry']+_0x4669cb[_0x7c00('0x24')]+_0x4669cb['countmachineretry']+_0x4669cb['countagentrejectretry']<_0x23794a[_0x7c00('0x26')]['dialGlobalMaxRetry'])_0x297465=0x1;_0x10819f({'additional':_0x297465});}else{_0x10819f({'additional':0x0});}})[_0x7c00('0x15')](function(_0x2bfdec){logger[_0x7c00('0x11')](_0x7c00('0x16'),_0x2bfdec[_0x7c00('0x13')]);_0x5a985c(_0x262576['error'](0x1f4,_0x2bfdec[_0x7c00('0x13')]));});}})[_0x7c00('0x15')](function(_0x5e0034){logger['error'](_0x7c00('0x16'),_0x5e0034[_0x7c00('0x13')]);_0x5a985c(_0x262576[_0x7c00('0x11')](0x1f4,_0x5e0034[_0x7c00('0x13')]));});}else _0x10819f({'additional':0x0});});});};exports[_0x7c00('0x29')]=function(_0x5ae6e2){var _0x5e6f5=this;return new Promise(function(_0xfb8fc9,_0x5250e3){return db[_0x7c00('0x17')][_0x7c00('0x18')]({'raw':!![],'where':{'ContactId':_0x5ae6e2[_0x7c00('0x19')]['ContactId'],'ListId':_0x5ae6e2[_0x7c00('0x19')]['ListId'],'VoiceQueueId':_0x5ae6e2[_0x7c00('0x19')][_0x7c00('0x1c')]===undefined?null:_0x5ae6e2[_0x7c00('0x19')][_0x7c00('0x1c')],'CampaignId':_0x5ae6e2['body']['CampaignId']===undefined?null:_0x5ae6e2[_0x7c00('0x19')][_0x7c00('0x1d')]}})[_0x7c00('0xa')](function(_0x2e79ae){if(_0x2e79ae!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x2e79ae['id'],'OrderBy':{'$gte':_0x2e79ae[_0x7c00('0x1f')]}},'order':[[_0x7c00('0x1f'),_0x7c00('0x20')]]})['then'](function(_0x4f1b53){if(_0x4f1b53)return activateAdditionalPhone(_0x2e79ae,_0x5ae6e2[_0x7c00('0x19')],_0x4f1b53,_0x5ae6e2[_0x7c00('0x2a')],_0x5ae6e2[_0x7c00('0x2b')])[_0x7c00('0xa')](function(_0x5b6c4b){_0xfb8fc9(_0x5b6c4b);});else{return db['CmHopperAdditionalPhone'][_0x7c00('0x18')]({'raw':!![],'where':{'CmHopperId':_0x2e79ae['id']},'order':[[_0x7c00('0x1f'),_0x7c00('0x20')]]})[_0x7c00('0xa')](function(_0x40a086){if(_0x40a086)return activateAdditionalPhone(_0x2e79ae,_0x5ae6e2[_0x7c00('0x19')],_0x40a086,_0x5ae6e2[_0x7c00('0x2a')],_0x5ae6e2[_0x7c00('0x2b')])['then'](function(_0x53e58f){_0xfb8fc9(_0x53e58f);});else{_0xfb8fc9({'id':_0x2e79ae['id'],'phone':''});}})['catch'](function(_0x341b68){logger[_0x7c00('0x11')](_0x7c00('0x16'),_0x341b68[_0x7c00('0x13')]);_0x5250e3(_0x5e6f5[_0x7c00('0x11')](0x1f4,_0x341b68[_0x7c00('0x13')]));});}})['catch'](function(_0xc1da47){logger[_0x7c00('0x11')]('VerifyAdditionalPhones',_0xc1da47[_0x7c00('0x13')]);_0x5250e3(_0x5e6f5[_0x7c00('0x11')](0x1f4,_0xc1da47['message']));});}else _0xfb8fc9(0x1);});});};function activateAdditionalPhone(_0x3ad245,_0x437696,_0xc3d551,_0x52c035,_0x8dd1bc){return new Promise(function(_0x42da4e,_0x5ecc15){var _0x11e81f;if(_['isNil'](_0xc3d551[_0x7c00('0x2c')])){_0xc3d551[_0x7c00('0x2c')]=moment();}if(moment()>moment(_0xc3d551['scheduledat'])){_0x11e81f=moment()[_0x7c00('0x2d')](_0x8dd1bc||0x3,_0x7c00('0x2e'));}else{if(_0xc3d551[_0x7c00('0x1f')]==0x0){_0x11e81f=moment(_0xc3d551[_0x7c00('0x2c')]);}else{_0x11e81f=moment()[_0x7c00('0x2d')](_0x8dd1bc||0x3,_0x7c00('0x2e'));}}if(_[_0x7c00('0x2f')](_0x11e81f)){_0x11e81f=moment()['add'](_0x8dd1bc||0x3,_0x7c00('0x2e'));}var _0x38bccb={'phone':_0x3ad245[_0x7c00('0x30')],'active':0x0,'OrderBy':_[_0x7c00('0x2f')](_0x3ad245[_0x7c00('0x1f')])?0x0:_0x3ad245[_0x7c00('0x1f')],'scheduledat':moment()[_0x7c00('0x2d')](_0x52c035||0x1,_0x7c00('0x2e')),'countbusyretry':_0x437696[_0x7c00('0x21')],'countcongestionretry':_0x437696['countcongestionretry'],'countnoanswerretry':_0x437696[_0x7c00('0x22')],'countnosuchnumberretry':_0x437696[_0x7c00('0x28')],'countdropretry':_0x437696[_0x7c00('0x23')],'countabandonedretry':_0x437696[_0x7c00('0x24')],'countmachineretry':_0x437696[_0x7c00('0x31')],'countagentrejectretry':_0x437696[_0x7c00('0x25')],'createdAt':_0x437696['createdAt'],'updatedAt':_0x437696[_0x7c00('0x32')]};var _0x3848b4={'CmHopperId':_0x3ad245['id'],'phone':_0xc3d551[_0x7c00('0x30')],'active':0x0,'OrderBy':_[_0x7c00('0x2f')](_0xc3d551[_0x7c00('0x1f')])?0x0:_0xc3d551[_0x7c00('0x1f')],'scheduledat':_0x11e81f,'countbusyretry':_0xc3d551[_0x7c00('0x21')],'countcongestionretry':_0xc3d551[_0x7c00('0x33')],'countnoanswerretry':_0xc3d551[_0x7c00('0x22')],'countnosuchnumberretry':_0xc3d551[_0x7c00('0x28')],'countdropretry':_0xc3d551['countdropretry'],'countabandonedretry':_0xc3d551[_0x7c00('0x24')],'countmachineretry':_0xc3d551[_0x7c00('0x31')],'countagentrejectretry':_0xc3d551[_0x7c00('0x25')],'createdAt':_0xc3d551[_0x7c00('0x34')],'updatedAt':_0xc3d551['updatedAt']};return db[_0x7c00('0x35')][_0x7c00('0x36')](function(_0x33df00){return db[_0x7c00('0x1e')]['update'](_0x38bccb,{'where':{'id':_0xc3d551['id']}},{'transaction':_0x33df00})[_0x7c00('0xa')](function(){return db['CmHopper'][_0x7c00('0x37')](_0x3848b4,{'where':{'id':_0x3ad245['id']}},{'transaction':_0x33df00});});})['then'](function(_0x3a995d){_0x42da4e({'id':_0x3ad245['id'],'phone':_0xc3d551[_0x7c00('0x30')]});})[_0x7c00('0x15')](function(_0x52c66a){logger[_0x7c00('0x11')]('activateAdditionalPhone',_0x52c66a[_0x7c00('0x13')]);_0x5ecc15({'error':_0x52c66a[_0x7c00('0x13')]});});});}exports[_0x7c00('0x38')]=function(_0x5c60f7){var _0x2b85e2=this;return new Promise(function(_0x1940e4,_0x1bea7b){return db[_0x7c00('0x17')]['update'](_0x5c60f7[_0x7c00('0x19')]['field'],{'where':{'id':_0x5c60f7['body']['id']}})[_0x7c00('0xa')](function(_0x25de78){_0x1940e4(_0x25de78);})[_0x7c00('0x15')](function(_0x1af7ee){logger['error'](_0x7c00('0x38'),_0x1af7ee['message']);_0x1bea7b(_0x2b85e2[_0x7c00('0x11')](0x1f4,_0x1af7ee[_0x7c00('0x13')]));});});};