2513b518c72830c2a165261739d620ad93b872ed
[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 _0xc709=['IncrementPreviewCounters','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','entity','CmHopperAdditionalPhone','ASC','countbusyretry','countdropretry','countmachineretry','countagentrejectretry','dialGlobalMaxRetry','SwapAdditionalPhones','duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','sequelize','update','activateAdditionalPhone'];(function(_0x25b68b,_0x36cb6a){var _0x1deae5=function(_0x5e6069){while(--_0x5e6069){_0x25b68b['push'](_0x25b68b['shift']());}};_0x1deae5(++_0x36cb6a);}(_0xc709,0x71));var _0x9c70=function(_0x7185f7,_0x37065){_0x7185f7=_0x7185f7-0x0;var _0x182e45=_0xc709[_0x7185f7];return _0x182e45;};'use strict';var _=require(_0x9c70('0x0'));var util=require(_0x9c70('0x1'));var moment=require(_0x9c70('0x2'));var BPromise=require('bluebird');var rs=require(_0x9c70('0x3'));var fs=require('fs');var Redis=require(_0x9c70('0x4'));var db=require(_0x9c70('0x5'))['db'];var utils=require(_0x9c70('0x6'));var logger=require(_0x9c70('0x7'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x9c70('0x8')][_0x9c70('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1264f8,_0x2aa51e,_0x364a6){return new BPromise(function(_0x5a4d0d,_0x13965f){return client[_0x9c70('0xa')](_0x1264f8,_0x364a6)[_0x9c70('0xb')](function(_0x16f4ba){logger[_0x9c70('0xc')](_0x9c70('0xd'),_0x2aa51e,_0x9c70('0xe'));logger[_0x9c70('0xf')](_0x9c70('0x10'),_0x2aa51e,_0x9c70('0xe'),JSON['stringify'](_0x16f4ba));if(_0x16f4ba[_0x9c70('0x11')]){if(_0x16f4ba['error'][_0x9c70('0x12')]===0x1f4){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2aa51e,_0x16f4ba[_0x9c70('0x11')][_0x9c70('0x13')]);return _0x13965f(_0x16f4ba['error'][_0x9c70('0x13')]);}logger[_0x9c70('0x11')](_0x9c70('0xd'),_0x2aa51e,_0x16f4ba['error']['message']);return _0x5a4d0d(_0x16f4ba[_0x9c70('0x11')]['message']);}else{logger[_0x9c70('0xc')](_0x9c70('0xd'),_0x2aa51e,'request\x20sent');_0x5a4d0d(_0x16f4ba[_0x9c70('0x14')][_0x9c70('0x13')]);}})[_0x9c70('0x15')](function(_0x4b83b5){logger[_0x9c70('0x11')](_0x9c70('0xd'),_0x2aa51e,_0x4b83b5);_0x13965f(_0x4b83b5);});});}exports[_0x9c70('0x16')]=function(_0x290aee){var _0x8b56b0=this;return new Promise(function(_0x35b1d3,_0x5f199b){return db[_0x9c70('0x17')][_0x9c70('0x18')]({'raw':!![],'where':{'ContactId':_0x290aee[_0x9c70('0x19')][_0x9c70('0x1a')],'ListId':_0x290aee[_0x9c70('0x19')][_0x9c70('0x1b')],'VoiceQueueId':_0x290aee[_0x9c70('0x19')]['VoiceQueueId']===undefined?null:_0x290aee[_0x9c70('0x19')][_0x9c70('0x1c')],'CampaignId':_0x290aee[_0x9c70('0x19')][_0x9c70('0x1d')]===undefined?null:_0x290aee['body'][_0x9c70('0x1d')]}})[_0x9c70('0xb')](function(_0x54016e){if(_0x54016e!=null){return db['CmHopperAdditionalPhone'][_0x9c70('0x18')]({'raw':!![],'where':{'CmHopperId':_0x54016e['id'],'OrderBy':{'$gt':_0x54016e[_0x9c70('0x1e')]}},'order':[[_0x9c70('0x1e'),'ASC']]})['then'](function(_0x71d717){var _0x3ebbda=0x0;if(_0x71d717){if(_0x71d717['countbusyretry']+_0x71d717[_0x9c70('0x1f')]+_0x71d717[_0x9c70('0x20')]+_0x71d717[_0x9c70('0x21')]+_0x71d717['countdropretry']+_0x71d717[_0x9c70('0x22')]+_0x71d717['countmachineretry']+_0x71d717['countagentrejectretry']<_0x290aee[_0x9c70('0x23')]['dialGlobalMaxRetry'])_0x3ebbda=0x1;_0x35b1d3({'additional':_0x3ebbda});}else{return db[_0x9c70('0x24')][_0x9c70('0x18')]({'raw':!![],'where':{'CmHopperId':_0x54016e['id']},'order':[['OrderBy',_0x9c70('0x25')]]})[_0x9c70('0xb')](function(_0x2c1d3d){var _0x12c31a=0x0;if(_0x2c1d3d){if(_0x2c1d3d[_0x9c70('0x26')]+_0x2c1d3d['countcongestionretry']+_0x2c1d3d[_0x9c70('0x20')]+_0x2c1d3d[_0x9c70('0x21')]+_0x2c1d3d[_0x9c70('0x27')]+_0x2c1d3d[_0x9c70('0x22')]+_0x2c1d3d[_0x9c70('0x28')]+_0x2c1d3d[_0x9c70('0x29')]<_0x290aee[_0x9c70('0x23')][_0x9c70('0x2a')])_0x12c31a=0x1;_0x35b1d3({'additional':_0x12c31a});}else{_0x35b1d3({'additional':0x0});}})[_0x9c70('0x15')](function(_0x155c5c){logger[_0x9c70('0x11')](_0x9c70('0x16'),_0x155c5c[_0x9c70('0x13')]);_0x5f199b(_0x8b56b0[_0x9c70('0x11')](0x1f4,_0x155c5c[_0x9c70('0x13')]));});}})['catch'](function(_0x28dfdb){logger[_0x9c70('0x11')](_0x9c70('0x16'),_0x28dfdb['message']);_0x5f199b(_0x8b56b0['error'](0x1f4,_0x28dfdb[_0x9c70('0x13')]));});}else _0x35b1d3({'additional':0x0});});});};exports[_0x9c70('0x2b')]=function(_0x2bb47e){var _0xb54450=this;return new Promise(function(_0x1f90fc,_0x1172e4){return db['CmHopper']['findOne']({'raw':!![],'where':{'ContactId':_0x2bb47e[_0x9c70('0x19')][_0x9c70('0x1a')],'ListId':_0x2bb47e[_0x9c70('0x19')]['ListId'],'VoiceQueueId':_0x2bb47e[_0x9c70('0x19')]['VoiceQueueId']===undefined?null:_0x2bb47e[_0x9c70('0x19')][_0x9c70('0x1c')],'CampaignId':_0x2bb47e['body']['CampaignId']===undefined?null:_0x2bb47e[_0x9c70('0x19')][_0x9c70('0x1d')]}})[_0x9c70('0xb')](function(_0x49266d){if(_0x49266d!=null){return db[_0x9c70('0x24')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x49266d['id'],'OrderBy':{'$gte':_0x49266d['OrderBy']}},'order':[[_0x9c70('0x1e'),_0x9c70('0x25')]]})['then'](function(_0x108d37){if(_0x108d37)return activateAdditionalPhone(_0x49266d,_0x2bb47e[_0x9c70('0x19')],_0x108d37,_0x2bb47e[_0x9c70('0x2c')],_0x2bb47e[_0x9c70('0x2d')])[_0x9c70('0xb')](function(_0x945f25){_0x1f90fc(_0x945f25);});else{return db[_0x9c70('0x24')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x49266d['id']},'order':[[_0x9c70('0x1e'),_0x9c70('0x25')]]})['then'](function(_0x1b2a18){if(_0x1b2a18)return activateAdditionalPhone(_0x49266d,_0x2bb47e['body'],_0x1b2a18,_0x2bb47e[_0x9c70('0x2c')],_0x2bb47e[_0x9c70('0x2d')])[_0x9c70('0xb')](function(_0x2ccd71){_0x1f90fc(_0x2ccd71);});else{_0x1f90fc({'id':_0x49266d['id'],'phone':''});}})[_0x9c70('0x15')](function(_0x2ae151){logger[_0x9c70('0x11')](_0x9c70('0x16'),_0x2ae151[_0x9c70('0x13')]);_0x1172e4(_0xb54450[_0x9c70('0x11')](0x1f4,_0x2ae151[_0x9c70('0x13')]));});}})[_0x9c70('0x15')](function(_0x336236){logger['error'](_0x9c70('0x16'),_0x336236['message']);_0x1172e4(_0xb54450['error'](0x1f4,_0x336236['message']));});}else _0x1f90fc(0x1);});});};function activateAdditionalPhone(_0x55801b,_0x451cb7,_0x49a5ac,_0x53274c,_0x361cbb){return new Promise(function(_0x389514,_0x1c168a){var _0xdd48f6;if(_[_0x9c70('0x2e')](_0x49a5ac[_0x9c70('0x2f')])){_0x49a5ac[_0x9c70('0x2f')]=moment();}if(moment()>moment(_0x49a5ac['scheduledat'])){_0xdd48f6=moment()['add'](_0x361cbb||0x3,'minutes');}else{if(_0x49a5ac[_0x9c70('0x1e')]==0x0){_0xdd48f6=moment(_0x49a5ac[_0x9c70('0x2f')]);}else{_0xdd48f6=moment()[_0x9c70('0x30')](_0x361cbb||0x3,_0x9c70('0x31'));}}if(_['isNil'](_0xdd48f6)){_0xdd48f6=moment()[_0x9c70('0x30')](_0x361cbb||0x3,_0x9c70('0x31'));}var _0x300e9c={'phone':_0x55801b[_0x9c70('0x32')],'active':0x0,'OrderBy':_['isNil'](_0x55801b['OrderBy'])?0x0:_0x55801b['OrderBy'],'scheduledat':moment()['add'](_0x53274c||0x1,'minutes'),'countbusyretry':_0x451cb7['countbusyretry'],'countcongestionretry':_0x451cb7[_0x9c70('0x1f')],'countnoanswerretry':_0x451cb7[_0x9c70('0x20')],'countnosuchnumberretry':_0x451cb7[_0x9c70('0x21')],'countdropretry':_0x451cb7[_0x9c70('0x27')],'countabandonedretry':_0x451cb7[_0x9c70('0x22')],'countmachineretry':_0x451cb7[_0x9c70('0x28')],'countagentrejectretry':_0x451cb7[_0x9c70('0x29')],'createdAt':_0x451cb7[_0x9c70('0x33')],'updatedAt':_0x451cb7['updatedAt']};var _0x2e62be={'CmHopperId':_0x55801b['id'],'phone':_0x49a5ac['phone'],'active':0x0,'OrderBy':_[_0x9c70('0x2e')](_0x49a5ac[_0x9c70('0x1e')])?0x0:_0x49a5ac['OrderBy'],'scheduledat':_0xdd48f6,'countbusyretry':_0x49a5ac['countbusyretry'],'countcongestionretry':_0x49a5ac[_0x9c70('0x1f')],'countnoanswerretry':_0x49a5ac[_0x9c70('0x20')],'countnosuchnumberretry':_0x49a5ac[_0x9c70('0x21')],'countdropretry':_0x49a5ac[_0x9c70('0x27')],'countabandonedretry':_0x49a5ac[_0x9c70('0x22')],'countmachineretry':_0x49a5ac[_0x9c70('0x28')],'countagentrejectretry':_0x49a5ac[_0x9c70('0x29')],'createdAt':_0x49a5ac[_0x9c70('0x33')],'updatedAt':_0x49a5ac['updatedAt']};return db[_0x9c70('0x34')]['transaction'](function(_0x1203e2){return db['CmHopperAdditionalPhone']['update'](_0x300e9c,{'where':{'id':_0x49a5ac['id']}},{'transaction':_0x1203e2})[_0x9c70('0xb')](function(){return db['CmHopper'][_0x9c70('0x35')](_0x2e62be,{'where':{'id':_0x55801b['id']}},{'transaction':_0x1203e2});});})['then'](function(_0x177c8b){_0x389514({'id':_0x55801b['id'],'phone':_0x49a5ac['phone']});})['catch'](function(_0xf3637e){logger[_0x9c70('0x11')](_0x9c70('0x36'),_0xf3637e['message']);_0x1c168a({'error':_0xf3637e[_0x9c70('0x13')]});});});}exports[_0x9c70('0x37')]=function(_0x55d912){var _0x4c8885=this;return new Promise(function(_0x30e3d2,_0x17471b){return db['CmHopper']['update'](_0x55d912[_0x9c70('0x19')]['field'],{'where':{'id':_0x55d912[_0x9c70('0x19')]['id']}})[_0x9c70('0xb')](function(_0x51e6ad){_0x30e3d2(_0x51e6ad);})['catch'](function(_0x410a9c){logger[_0x9c70('0x11')](_0x9c70('0x37'),_0x410a9c[_0x9c70('0x13')]);_0x17471b(_0x4c8885[_0x9c70('0x11')](0x1f4,_0x410a9c[_0x9c70('0x13')]));});});};