84f2ce8c10f5381cdfa9c7f1d34021affcf93729
[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 _0x8b1a=['stringify','error','code','message','request\x20sent','result','catch','VerifyAdditionalPhones','body','ContactId','VoiceQueueId','CampaignId','OrderBy','ASC','then','countbusyretry','countcongestionretry','countnosuchnumberretry','countabandonedretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','findOne','countnoanswerretry','countdropretry','countmachineretry','SwapAdditionalPhones','CmHopper','waitTime','duration','isNil','scheduledat','add','minutes','phone','createdAt','updatedAt','countagentrejectretry','sequelize','transaction','update','IncrementPreviewCounters','field','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','CmHopperAdditionalPhone,\x20%s,\x20%s','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x8b1a,0x152));var _0xa8b1=function(_0x564e3e,_0xf366d3){_0x564e3e=_0x564e3e-0x0;var _0x4fe7ee=_0x8b1a[_0x564e3e];return _0x4fe7ee;};'use strict';var _=require(_0xa8b1('0x0'));var util=require(_0xa8b1('0x1'));var moment=require(_0xa8b1('0x2'));var BPromise=require('bluebird');var rs=require(_0xa8b1('0x3'));var fs=require('fs');var Redis=require(_0xa8b1('0x4'));var db=require(_0xa8b1('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa8b1('0x6'))(_0xa8b1('0x7'));var config=require(_0xa8b1('0x8'));var jayson=require(_0xa8b1('0x9'));var client=jayson[_0xa8b1('0xa')][_0xa8b1('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5db169,_0x2a3030,_0x459cf9){return new BPromise(function(_0x5d958d,_0xabb2b9){return client[_0xa8b1('0xc')](_0x5db169,_0x459cf9)['then'](function(_0x112113){logger[_0xa8b1('0xd')](_0xa8b1('0xe'),_0x2a3030,'request\x20sent');logger['debug'](_0xa8b1('0xf'),_0x2a3030,'request\x20sent',JSON[_0xa8b1('0x10')](_0x112113));if(_0x112113[_0xa8b1('0x11')]){if(_0x112113[_0xa8b1('0x11')][_0xa8b1('0x12')]===0x1f4){logger[_0xa8b1('0x11')](_0xa8b1('0xe'),_0x2a3030,_0x112113[_0xa8b1('0x11')][_0xa8b1('0x13')]);return _0xabb2b9(_0x112113['error'][_0xa8b1('0x13')]);}logger[_0xa8b1('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2a3030,_0x112113[_0xa8b1('0x11')]['message']);return _0x5d958d(_0x112113[_0xa8b1('0x11')]['message']);}else{logger[_0xa8b1('0xd')](_0xa8b1('0xe'),_0x2a3030,_0xa8b1('0x14'));_0x5d958d(_0x112113[_0xa8b1('0x15')][_0xa8b1('0x13')]);}})[_0xa8b1('0x16')](function(_0x219e46){logger[_0xa8b1('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2a3030,_0x219e46);_0xabb2b9(_0x219e46);});});}exports[_0xa8b1('0x17')]=function(_0x457967){var _0x5a05ac=this;return new Promise(function(_0x59ff94,_0x47c3be){return db['CmHopper']['findOne']({'raw':!![],'where':{'ContactId':_0x457967[_0xa8b1('0x18')][_0xa8b1('0x19')],'ListId':_0x457967[_0xa8b1('0x18')]['ListId'],'VoiceQueueId':_0x457967['body'][_0xa8b1('0x1a')]===undefined?null:_0x457967['body'][_0xa8b1('0x1a')],'CampaignId':_0x457967[_0xa8b1('0x18')][_0xa8b1('0x1b')]===undefined?null:_0x457967[_0xa8b1('0x18')][_0xa8b1('0x1b')]}})['then'](function(_0x2ab5a0){if(_0x2ab5a0!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x2ab5a0['id'],'OrderBy':{'$gt':_0x2ab5a0[_0xa8b1('0x1c')]}},'order':[[_0xa8b1('0x1c'),_0xa8b1('0x1d')]]})[_0xa8b1('0x1e')](function(_0xc557fa){var _0x348ac8=0x0;if(_0xc557fa){if(_0xc557fa[_0xa8b1('0x1f')]+_0xc557fa[_0xa8b1('0x20')]+_0xc557fa['countnoanswerretry']+_0xc557fa[_0xa8b1('0x21')]+_0xc557fa['countdropretry']+_0xc557fa[_0xa8b1('0x22')]+_0xc557fa['countmachineretry']+_0xc557fa['countagentrejectretry']<_0x457967[_0xa8b1('0x23')][_0xa8b1('0x24')])_0x348ac8=0x1;_0x59ff94({'additional':_0x348ac8});}else{return db[_0xa8b1('0x25')][_0xa8b1('0x26')]({'raw':!![],'where':{'CmHopperId':_0x2ab5a0['id']},'order':[[_0xa8b1('0x1c'),_0xa8b1('0x1d')]]})[_0xa8b1('0x1e')](function(_0x72a6d2){var _0x1f5314=0x0;if(_0x72a6d2){if(_0x72a6d2[_0xa8b1('0x1f')]+_0x72a6d2[_0xa8b1('0x20')]+_0x72a6d2[_0xa8b1('0x27')]+_0x72a6d2['countnosuchnumberretry']+_0x72a6d2[_0xa8b1('0x28')]+_0x72a6d2[_0xa8b1('0x22')]+_0x72a6d2[_0xa8b1('0x29')]+_0x72a6d2['countagentrejectretry']<_0x457967[_0xa8b1('0x23')][_0xa8b1('0x24')])_0x1f5314=0x1;_0x59ff94({'additional':_0x1f5314});}else{_0x59ff94({'additional':0x0});}})[_0xa8b1('0x16')](function(_0x44d393){logger[_0xa8b1('0x11')](_0xa8b1('0x17'),_0x44d393['message']);_0x47c3be(_0x5a05ac['error'](0x1f4,_0x44d393['message']));});}})['catch'](function(_0x4cd2b1){logger['error']('VerifyAdditionalPhones',_0x4cd2b1[_0xa8b1('0x13')]);_0x47c3be(_0x5a05ac[_0xa8b1('0x11')](0x1f4,_0x4cd2b1[_0xa8b1('0x13')]));});}else _0x59ff94({'additional':0x0});});});};exports[_0xa8b1('0x2a')]=function(_0x47a7d1){var _0x1d8cc2=this;return new Promise(function(_0x46cde7,_0x4f24a5){return db[_0xa8b1('0x2b')][_0xa8b1('0x26')]({'raw':!![],'where':{'ContactId':_0x47a7d1['body'][_0xa8b1('0x19')],'ListId':_0x47a7d1[_0xa8b1('0x18')]['ListId'],'VoiceQueueId':_0x47a7d1[_0xa8b1('0x18')][_0xa8b1('0x1a')]===undefined?null:_0x47a7d1[_0xa8b1('0x18')][_0xa8b1('0x1a')],'CampaignId':_0x47a7d1['body'][_0xa8b1('0x1b')]===undefined?null:_0x47a7d1[_0xa8b1('0x18')][_0xa8b1('0x1b')]}})[_0xa8b1('0x1e')](function(_0x134649){if(_0x134649!=null){return db[_0xa8b1('0x25')][_0xa8b1('0x26')]({'raw':!![],'where':{'CmHopperId':_0x134649['id'],'OrderBy':{'$gte':_0x134649['OrderBy']}},'order':[['OrderBy',_0xa8b1('0x1d')]]})['then'](function(_0x4fe7b1){if(_0x4fe7b1)return activateAdditionalPhone(_0x134649,_0x47a7d1[_0xa8b1('0x18')],_0x4fe7b1,_0x47a7d1['duration'],_0x47a7d1[_0xa8b1('0x2c')])[_0xa8b1('0x1e')](function(_0x4f8fc2){_0x46cde7(_0x4f8fc2);});else{return db[_0xa8b1('0x25')][_0xa8b1('0x26')]({'raw':!![],'where':{'CmHopperId':_0x134649['id']},'order':[[_0xa8b1('0x1c'),'ASC']]})[_0xa8b1('0x1e')](function(_0x43d0fe){if(_0x43d0fe)return activateAdditionalPhone(_0x134649,_0x47a7d1[_0xa8b1('0x18')],_0x43d0fe,_0x47a7d1[_0xa8b1('0x2d')],_0x47a7d1[_0xa8b1('0x2c')])['then'](function(_0x548af1){_0x46cde7(_0x548af1);});else{_0x46cde7({'id':_0x134649['id'],'phone':''});}})[_0xa8b1('0x16')](function(_0x503817){logger['error'](_0xa8b1('0x17'),_0x503817['message']);_0x4f24a5(_0x1d8cc2[_0xa8b1('0x11')](0x1f4,_0x503817[_0xa8b1('0x13')]));});}})[_0xa8b1('0x16')](function(_0x51e686){logger[_0xa8b1('0x11')](_0xa8b1('0x17'),_0x51e686['message']);_0x4f24a5(_0x1d8cc2['error'](0x1f4,_0x51e686[_0xa8b1('0x13')]));});}else _0x46cde7(0x1);});});};function activateAdditionalPhone(_0x4f5b5d,_0x22998b,_0x13d0c3,_0x4cfbf8,_0x4e07ed){return new Promise(function(_0x2e19e7,_0x563aff){var _0x2f1d67;if(_[_0xa8b1('0x2e')](_0x13d0c3[_0xa8b1('0x2f')])){_0x13d0c3[_0xa8b1('0x2f')]=moment();}if(moment()>moment(_0x13d0c3['scheduledat'])){_0x2f1d67=moment()[_0xa8b1('0x30')](_0x4e07ed||0x3,_0xa8b1('0x31'));}else{if(_0x13d0c3[_0xa8b1('0x1c')]==0x0){_0x2f1d67=moment(_0x13d0c3['scheduledat']);}else{_0x2f1d67=moment()['add'](_0x4e07ed||0x3,_0xa8b1('0x31'));}}if(_['isNil'](_0x2f1d67)){_0x2f1d67=moment()[_0xa8b1('0x30')](_0x4e07ed||0x3,_0xa8b1('0x31'));}var _0x2b8de5={'phone':_0x4f5b5d[_0xa8b1('0x32')],'active':0x0,'OrderBy':_[_0xa8b1('0x2e')](_0x4f5b5d['OrderBy'])?0x0:_0x4f5b5d[_0xa8b1('0x1c')],'scheduledat':moment()[_0xa8b1('0x30')](_0x4cfbf8||0x1,_0xa8b1('0x31')),'countbusyretry':_0x22998b[_0xa8b1('0x1f')],'countcongestionretry':_0x22998b[_0xa8b1('0x20')],'countnoanswerretry':_0x22998b[_0xa8b1('0x27')],'countnosuchnumberretry':_0x22998b[_0xa8b1('0x21')],'countdropretry':_0x22998b[_0xa8b1('0x28')],'countabandonedretry':_0x22998b[_0xa8b1('0x22')],'countmachineretry':_0x22998b[_0xa8b1('0x29')],'countagentrejectretry':_0x22998b['countagentrejectretry'],'createdAt':_0x22998b[_0xa8b1('0x33')],'updatedAt':_0x22998b[_0xa8b1('0x34')]};var _0x5cbdcd={'CmHopperId':_0x4f5b5d['id'],'phone':_0x13d0c3[_0xa8b1('0x32')],'active':0x0,'OrderBy':_[_0xa8b1('0x2e')](_0x13d0c3[_0xa8b1('0x1c')])?0x0:_0x13d0c3[_0xa8b1('0x1c')],'scheduledat':_0x2f1d67,'countbusyretry':_0x13d0c3[_0xa8b1('0x1f')],'countcongestionretry':_0x13d0c3[_0xa8b1('0x20')],'countnoanswerretry':_0x13d0c3['countnoanswerretry'],'countnosuchnumberretry':_0x13d0c3[_0xa8b1('0x21')],'countdropretry':_0x13d0c3[_0xa8b1('0x28')],'countabandonedretry':_0x13d0c3[_0xa8b1('0x22')],'countmachineretry':_0x13d0c3[_0xa8b1('0x29')],'countagentrejectretry':_0x13d0c3[_0xa8b1('0x35')],'createdAt':_0x13d0c3[_0xa8b1('0x33')],'updatedAt':_0x13d0c3[_0xa8b1('0x34')]};return db[_0xa8b1('0x36')][_0xa8b1('0x37')](function(_0x2e0f19){return db['CmHopperAdditionalPhone']['update'](_0x2b8de5,{'where':{'id':_0x13d0c3['id']}},{'transaction':_0x2e0f19})['then'](function(){return db['CmHopper'][_0xa8b1('0x38')](_0x5cbdcd,{'where':{'id':_0x4f5b5d['id']}},{'transaction':_0x2e0f19});});})[_0xa8b1('0x1e')](function(_0xc41037){_0x2e19e7({'id':_0x4f5b5d['id'],'phone':_0x13d0c3[_0xa8b1('0x32')]});})[_0xa8b1('0x16')](function(_0x4a1432){logger[_0xa8b1('0x11')]('activateAdditionalPhone',_0x4a1432[_0xa8b1('0x13')]);_0x563aff({'error':_0x4a1432['message']});});});}exports[_0xa8b1('0x39')]=function(_0x53518b){var _0x4c5e10=this;return new Promise(function(_0x4f863e,_0x109705){return db['CmHopper'][_0xa8b1('0x38')](_0x53518b['body'][_0xa8b1('0x3a')],{'where':{'id':_0x53518b[_0xa8b1('0x18')]['id']}})[_0xa8b1('0x1e')](function(_0x1216f5){_0x4f863e(_0x1216f5);})[_0xa8b1('0x16')](function(_0x49293d){logger[_0xa8b1('0x11')](_0xa8b1('0x39'),_0x49293d['message']);_0x109705(_0x4c5e10[_0xa8b1('0x11')](0x1f4,_0x49293d[_0xa8b1('0x13')]));});});};