e014899e1ab885e75de953b5ba88eee9c955468d
[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 _0x7496=['VerifyAdditionalPhones','CmHopper','findOne','ContactId','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','then','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','entity','countnoanswerretry','dialGlobalMaxRetry','catch','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','sequelize','transaction','update','IncrementPreviewCounters','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','jayson/promise','client','request','info','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','result'];(function(_0xc82582,_0x526d7d){var _0x3f7e59=function(_0x221095){while(--_0x221095){_0xc82582['push'](_0xc82582['shift']());}};_0x3f7e59(++_0x526d7d);}(_0x7496,0x16e));var _0x6749=function(_0x482d5c,_0x841427){_0x482d5c=_0x482d5c-0x0;var _0x592efb=_0x7496[_0x482d5c];return _0x592efb;};'use strict';var _=require(_0x6749('0x0'));var util=require('util');var moment=require(_0x6749('0x1'));var BPromise=require(_0x6749('0x2'));var rs=require(_0x6749('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x6749('0x4'));var logger=require(_0x6749('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x6749('0x6'));var client=jayson[_0x6749('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4b0bb2,_0x51d311,_0x2c55e){return new BPromise(function(_0x1fdf4a,_0x19d2b4){return client[_0x6749('0x8')](_0x4b0bb2,_0x2c55e)['then'](function(_0x4ebbd2){logger[_0x6749('0x9')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x51d311,_0x6749('0xa'));logger[_0x6749('0xb')](_0x6749('0xc'),_0x51d311,_0x6749('0xa'),JSON[_0x6749('0xd')](_0x4ebbd2));if(_0x4ebbd2[_0x6749('0xe')]){if(_0x4ebbd2[_0x6749('0xe')][_0x6749('0xf')]===0x1f4){logger[_0x6749('0xe')](_0x6749('0x10'),_0x51d311,_0x4ebbd2[_0x6749('0xe')][_0x6749('0x11')]);return _0x19d2b4(_0x4ebbd2[_0x6749('0xe')][_0x6749('0x11')]);}logger[_0x6749('0xe')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x51d311,_0x4ebbd2['error'][_0x6749('0x11')]);return _0x1fdf4a(_0x4ebbd2[_0x6749('0xe')][_0x6749('0x11')]);}else{logger['info'](_0x6749('0x10'),_0x51d311,'request\x20sent');_0x1fdf4a(_0x4ebbd2[_0x6749('0x12')]['message']);}})['catch'](function(_0x31e6a9){logger[_0x6749('0xe')](_0x6749('0x10'),_0x51d311,_0x31e6a9);_0x19d2b4(_0x31e6a9);});});}exports[_0x6749('0x13')]=function(_0x18fee0){var _0x2baff0=this;return new Promise(function(_0x129d24,_0x36ee49){return db[_0x6749('0x14')][_0x6749('0x15')]({'raw':!![],'where':{'ContactId':_0x18fee0['body'][_0x6749('0x16')],'ListId':_0x18fee0[_0x6749('0x17')][_0x6749('0x18')],'VoiceQueueId':_0x18fee0[_0x6749('0x17')][_0x6749('0x19')]===undefined?null:_0x18fee0[_0x6749('0x17')][_0x6749('0x19')],'CampaignId':_0x18fee0[_0x6749('0x17')][_0x6749('0x1a')]===undefined?null:_0x18fee0[_0x6749('0x17')]['CampaignId']}})['then'](function(_0x2f5e62){if(_0x2f5e62!=null){return db[_0x6749('0x1b')][_0x6749('0x15')]({'raw':!![],'where':{'CmHopperId':_0x2f5e62['id'],'OrderBy':{'$gt':_0x2f5e62[_0x6749('0x1c')]}},'order':[[_0x6749('0x1c'),_0x6749('0x1d')]]})[_0x6749('0x1e')](function(_0x1a4116){var _0x97f899=0x0;if(_0x1a4116){if(_0x1a4116[_0x6749('0x1f')]+_0x1a4116[_0x6749('0x20')]+_0x1a4116['countnoanswerretry']+_0x1a4116[_0x6749('0x21')]+_0x1a4116[_0x6749('0x22')]+_0x1a4116[_0x6749('0x23')]+_0x1a4116[_0x6749('0x24')]+_0x1a4116['countagentrejectretry']<_0x18fee0[_0x6749('0x25')]['dialGlobalMaxRetry'])_0x97f899=0x1;_0x129d24({'additional':_0x97f899});}else{return db['CmHopperAdditionalPhone'][_0x6749('0x15')]({'raw':!![],'where':{'CmHopperId':_0x2f5e62['id']},'order':[[_0x6749('0x1c'),'ASC']]})[_0x6749('0x1e')](function(_0x373156){var _0x5b101b=0x0;if(_0x373156){if(_0x373156[_0x6749('0x1f')]+_0x373156[_0x6749('0x20')]+_0x373156[_0x6749('0x26')]+_0x373156[_0x6749('0x21')]+_0x373156[_0x6749('0x22')]+_0x373156[_0x6749('0x23')]+_0x373156[_0x6749('0x24')]+_0x373156['countagentrejectretry']<_0x18fee0[_0x6749('0x25')][_0x6749('0x27')])_0x5b101b=0x1;_0x129d24({'additional':_0x5b101b});}else{_0x129d24({'additional':0x0});}})[_0x6749('0x28')](function(_0xa60c09){logger[_0x6749('0xe')](_0x6749('0x13'),_0xa60c09[_0x6749('0x11')]);_0x36ee49(_0x2baff0['error'](0x1f4,_0xa60c09[_0x6749('0x11')]));});}})['catch'](function(_0x5edd3f){logger[_0x6749('0xe')](_0x6749('0x13'),_0x5edd3f['message']);_0x36ee49(_0x2baff0[_0x6749('0xe')](0x1f4,_0x5edd3f[_0x6749('0x11')]));});}else _0x129d24({'additional':0x0});});});};exports[_0x6749('0x29')]=function(_0x38decc){var _0x4ae8a5=this;return new Promise(function(_0x415066,_0x48e714){return db[_0x6749('0x14')]['findOne']({'raw':!![],'where':{'ContactId':_0x38decc[_0x6749('0x17')]['ContactId'],'ListId':_0x38decc[_0x6749('0x17')][_0x6749('0x18')],'VoiceQueueId':_0x38decc['body']['VoiceQueueId']===undefined?null:_0x38decc[_0x6749('0x17')][_0x6749('0x19')],'CampaignId':_0x38decc['body']['CampaignId']===undefined?null:_0x38decc['body'][_0x6749('0x1a')]}})[_0x6749('0x1e')](function(_0x332e52){if(_0x332e52!=null){return db[_0x6749('0x1b')][_0x6749('0x15')]({'raw':!![],'where':{'CmHopperId':_0x332e52['id'],'OrderBy':{'$gte':_0x332e52['OrderBy']}},'order':[[_0x6749('0x1c'),_0x6749('0x1d')]]})[_0x6749('0x1e')](function(_0x43c950){if(_0x43c950)return activateAdditionalPhone(_0x332e52,_0x38decc[_0x6749('0x17')],_0x43c950,_0x38decc[_0x6749('0x2a')],_0x38decc['waitTime'])[_0x6749('0x1e')](function(_0x4fdd6e){_0x415066(_0x4fdd6e);});else{return db[_0x6749('0x1b')][_0x6749('0x15')]({'raw':!![],'where':{'CmHopperId':_0x332e52['id']},'order':[[_0x6749('0x1c'),_0x6749('0x1d')]]})[_0x6749('0x1e')](function(_0x4cdc0e){if(_0x4cdc0e)return activateAdditionalPhone(_0x332e52,_0x38decc[_0x6749('0x17')],_0x4cdc0e,_0x38decc[_0x6749('0x2a')],_0x38decc[_0x6749('0x2b')])['then'](function(_0x16c584){_0x415066(_0x16c584);});else{_0x415066({'id':_0x332e52['id'],'phone':''});}})[_0x6749('0x28')](function(_0x398420){logger[_0x6749('0xe')](_0x6749('0x13'),_0x398420['message']);_0x48e714(_0x4ae8a5[_0x6749('0xe')](0x1f4,_0x398420[_0x6749('0x11')]));});}})[_0x6749('0x28')](function(_0x5cf7be){logger[_0x6749('0xe')]('VerifyAdditionalPhones',_0x5cf7be[_0x6749('0x11')]);_0x48e714(_0x4ae8a5[_0x6749('0xe')](0x1f4,_0x5cf7be[_0x6749('0x11')]));});}else _0x415066(0x1);});});};function activateAdditionalPhone(_0x1505e8,_0x1b771a,_0x215519,_0x1f5d65,_0x18ba3c){return new Promise(function(_0x39141d,_0x2eac6d){var _0x1a2257;if(_['isNil'](_0x215519[_0x6749('0x2c')])){_0x215519[_0x6749('0x2c')]=moment();}if(moment()>moment(_0x215519[_0x6749('0x2c')])){_0x1a2257=moment()[_0x6749('0x2d')](_0x18ba3c||0x3,_0x6749('0x2e'));}else{if(_0x215519['OrderBy']==0x0){_0x1a2257=moment(_0x215519[_0x6749('0x2c')]);}else{_0x1a2257=moment()['add'](_0x18ba3c||0x3,_0x6749('0x2e'));}}if(_[_0x6749('0x2f')](_0x1a2257)){_0x1a2257=moment()['add'](_0x18ba3c||0x3,_0x6749('0x2e'));}var _0x283671={'phone':_0x1505e8[_0x6749('0x30')],'active':0x0,'OrderBy':_[_0x6749('0x2f')](_0x1505e8[_0x6749('0x1c')])?0x0:_0x1505e8[_0x6749('0x1c')],'scheduledat':moment()[_0x6749('0x2d')](_0x1f5d65||0x1,_0x6749('0x2e')),'countbusyretry':_0x1b771a[_0x6749('0x1f')],'countcongestionretry':_0x1b771a['countcongestionretry'],'countnoanswerretry':_0x1b771a[_0x6749('0x26')],'countnosuchnumberretry':_0x1b771a[_0x6749('0x21')],'countdropretry':_0x1b771a[_0x6749('0x22')],'countabandonedretry':_0x1b771a[_0x6749('0x23')],'countmachineretry':_0x1b771a[_0x6749('0x24')],'countagentrejectretry':_0x1b771a['countagentrejectretry'],'createdAt':_0x1b771a[_0x6749('0x31')],'updatedAt':_0x1b771a[_0x6749('0x32')]};var _0x2b5ab3={'CmHopperId':_0x1505e8['id'],'phone':_0x215519[_0x6749('0x30')],'active':0x0,'OrderBy':_[_0x6749('0x2f')](_0x215519[_0x6749('0x1c')])?0x0:_0x215519[_0x6749('0x1c')],'scheduledat':_0x1a2257,'countbusyretry':_0x215519[_0x6749('0x1f')],'countcongestionretry':_0x215519[_0x6749('0x20')],'countnoanswerretry':_0x215519[_0x6749('0x26')],'countnosuchnumberretry':_0x215519['countnosuchnumberretry'],'countdropretry':_0x215519[_0x6749('0x22')],'countabandonedretry':_0x215519[_0x6749('0x23')],'countmachineretry':_0x215519[_0x6749('0x24')],'countagentrejectretry':_0x215519['countagentrejectretry'],'createdAt':_0x215519[_0x6749('0x31')],'updatedAt':_0x215519[_0x6749('0x32')]};return db[_0x6749('0x33')][_0x6749('0x34')](function(_0x1cc44a){return db[_0x6749('0x1b')][_0x6749('0x35')](_0x283671,{'where':{'id':_0x215519['id']}},{'transaction':_0x1cc44a})[_0x6749('0x1e')](function(){return db[_0x6749('0x14')][_0x6749('0x35')](_0x2b5ab3,{'where':{'id':_0x1505e8['id']}},{'transaction':_0x1cc44a});});})[_0x6749('0x1e')](function(_0x5868c3){_0x39141d({'id':_0x1505e8['id'],'phone':_0x215519[_0x6749('0x30')]});})[_0x6749('0x28')](function(_0xb306a9){logger['error']('activateAdditionalPhone',_0xb306a9[_0x6749('0x11')]);_0x2eac6d({'error':_0xb306a9[_0x6749('0x11')]});});});}exports[_0x6749('0x36')]=function(_0x2d4571){var _0x3f96b1=this;return new Promise(function(_0x54beef,_0x4f0ec8){return db[_0x6749('0x14')]['update'](_0x2d4571[_0x6749('0x17')]['field'],{'where':{'id':_0x2d4571[_0x6749('0x17')]['id']}})[_0x6749('0x1e')](function(_0x47292c){_0x54beef(_0x47292c);})['catch'](function(_0x5469bc){logger[_0x6749('0xe')]('IncrementPreviewCounters',_0x5469bc[_0x6749('0x11')]);_0x4f0ec8(_0x3f96b1[_0x6749('0xe')](0x1f4,_0x5469bc[_0x6749('0x11')]));});});};