cfa4c51671c78b4814ad06e31af00046ec2c42ba
[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 _0xf8d0=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','stringify','error','code','message','result','CmHopperAdditionalPhone,\x20%s,\x20%s','VerifyAdditionalPhones','CmHopper','ContactId','body','ListId','VoiceQueueId','CampaignId','findOne','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','catch','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','phone','countagentrejectretry','createdAt','updatedAt','sequelize','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','bluebird','randomstring'];(function(_0x4c4ca2,_0x30d812){var _0x17dac3=function(_0x4f07e6){while(--_0x4f07e6){_0x4c4ca2['push'](_0x4c4ca2['shift']());}};_0x17dac3(++_0x30d812);}(_0xf8d0,0x199));var _0x0f8d=function(_0x5c8147,_0x3192ce){_0x5c8147=_0x5c8147-0x0;var _0x147d1d=_0xf8d0[_0x5c8147];return _0x147d1d;};'use strict';var _=require(_0x0f8d('0x0'));var util=require(_0x0f8d('0x1'));var moment=require('moment');var BPromise=require(_0x0f8d('0x2'));var rs=require(_0x0f8d('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0f8d('0x4'))['db'];var utils=require(_0x0f8d('0x5'));var logger=require(_0x0f8d('0x6'))(_0x0f8d('0x7'));var config=require(_0x0f8d('0x8'));var jayson=require(_0x0f8d('0x9'));var client=jayson[_0x0f8d('0xa')][_0x0f8d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1fa813,_0x1822e6,_0x579177){return new BPromise(function(_0x4bcae1,_0x259d64){return client['request'](_0x1fa813,_0x579177)[_0x0f8d('0xc')](function(_0x53c119){logger[_0x0f8d('0xd')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1822e6,_0x0f8d('0xe'));logger[_0x0f8d('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x1822e6,'request\x20sent',JSON[_0x0f8d('0x10')](_0x53c119));if(_0x53c119[_0x0f8d('0x11')]){if(_0x53c119[_0x0f8d('0x11')][_0x0f8d('0x12')]===0x1f4){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1822e6,_0x53c119['error'][_0x0f8d('0x13')]);return _0x259d64(_0x53c119[_0x0f8d('0x11')][_0x0f8d('0x13')]);}logger[_0x0f8d('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1822e6,_0x53c119[_0x0f8d('0x11')][_0x0f8d('0x13')]);return _0x4bcae1(_0x53c119[_0x0f8d('0x11')][_0x0f8d('0x13')]);}else{logger[_0x0f8d('0xd')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1822e6,'request\x20sent');_0x4bcae1(_0x53c119[_0x0f8d('0x14')][_0x0f8d('0x13')]);}})['catch'](function(_0x9a42dc){logger[_0x0f8d('0x11')](_0x0f8d('0x15'),_0x1822e6,_0x9a42dc);_0x259d64(_0x9a42dc);});});}exports[_0x0f8d('0x16')]=function(_0x5136b5){var _0x252b12=this;return new Promise(function(_0x1b759d,_0x306bcd){return db[_0x0f8d('0x17')]['findOne']({'raw':!![],'where':{'ContactId':_0x5136b5['body'][_0x0f8d('0x18')],'ListId':_0x5136b5[_0x0f8d('0x19')][_0x0f8d('0x1a')],'VoiceQueueId':_0x5136b5['body'][_0x0f8d('0x1b')]===undefined?null:_0x5136b5[_0x0f8d('0x19')][_0x0f8d('0x1b')],'CampaignId':_0x5136b5[_0x0f8d('0x19')][_0x0f8d('0x1c')]===undefined?null:_0x5136b5[_0x0f8d('0x19')][_0x0f8d('0x1c')]}})['then'](function(_0x5b0a83){if(_0x5b0a83!=null){return db['CmHopperAdditionalPhone'][_0x0f8d('0x1d')]({'raw':!![],'where':{'CmHopperId':_0x5b0a83['id'],'OrderBy':{'$gt':_0x5b0a83[_0x0f8d('0x1e')]}},'order':[[_0x0f8d('0x1e'),_0x0f8d('0x1f')]]})['then'](function(_0x59e711){var _0x18258e=0x0;if(_0x59e711){if(_0x59e711[_0x0f8d('0x20')]+_0x59e711[_0x0f8d('0x21')]+_0x59e711[_0x0f8d('0x22')]+_0x59e711[_0x0f8d('0x23')]+_0x59e711[_0x0f8d('0x24')]+_0x59e711[_0x0f8d('0x25')]+_0x59e711[_0x0f8d('0x26')]+_0x59e711['countagentrejectretry']<_0x5136b5[_0x0f8d('0x27')][_0x0f8d('0x28')])_0x18258e=0x1;_0x1b759d({'additional':_0x18258e});}else{return db[_0x0f8d('0x29')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x5b0a83['id']},'order':[['OrderBy','ASC']]})[_0x0f8d('0xc')](function(_0x31d7c7){var _0x2060fc=0x0;if(_0x31d7c7){if(_0x31d7c7[_0x0f8d('0x20')]+_0x31d7c7[_0x0f8d('0x21')]+_0x31d7c7[_0x0f8d('0x22')]+_0x31d7c7[_0x0f8d('0x23')]+_0x31d7c7[_0x0f8d('0x24')]+_0x31d7c7['countabandonedretry']+_0x31d7c7['countmachineretry']+_0x31d7c7['countagentrejectretry']<_0x5136b5[_0x0f8d('0x27')][_0x0f8d('0x28')])_0x2060fc=0x1;_0x1b759d({'additional':_0x2060fc});}else{_0x1b759d({'additional':0x0});}})[_0x0f8d('0x2a')](function(_0x33d2cc){logger[_0x0f8d('0x11')]('VerifyAdditionalPhones',_0x33d2cc['message']);_0x306bcd(_0x252b12['error'](0x1f4,_0x33d2cc[_0x0f8d('0x13')]));});}})['catch'](function(_0x3ea121){logger[_0x0f8d('0x11')](_0x0f8d('0x16'),_0x3ea121[_0x0f8d('0x13')]);_0x306bcd(_0x252b12[_0x0f8d('0x11')](0x1f4,_0x3ea121[_0x0f8d('0x13')]));});}else _0x1b759d({'additional':0x0});});});};exports[_0x0f8d('0x2b')]=function(_0x54cc04){var _0x53dfc6=this;return new Promise(function(_0x5003c3,_0x135163){return db[_0x0f8d('0x17')][_0x0f8d('0x1d')]({'raw':!![],'where':{'ContactId':_0x54cc04['body'][_0x0f8d('0x18')],'ListId':_0x54cc04[_0x0f8d('0x19')][_0x0f8d('0x1a')],'VoiceQueueId':_0x54cc04[_0x0f8d('0x19')][_0x0f8d('0x1b')]===undefined?null:_0x54cc04[_0x0f8d('0x19')][_0x0f8d('0x1b')],'CampaignId':_0x54cc04['body'][_0x0f8d('0x1c')]===undefined?null:_0x54cc04[_0x0f8d('0x19')][_0x0f8d('0x1c')]}})[_0x0f8d('0xc')](function(_0x3a8039){if(_0x3a8039!=null){return db[_0x0f8d('0x29')][_0x0f8d('0x1d')]({'raw':!![],'where':{'CmHopperId':_0x3a8039['id'],'OrderBy':{'$gte':_0x3a8039[_0x0f8d('0x1e')]}},'order':[[_0x0f8d('0x1e'),'ASC']]})[_0x0f8d('0xc')](function(_0x91b029){if(_0x91b029)return activateAdditionalPhone(_0x3a8039,_0x54cc04[_0x0f8d('0x19')],_0x91b029,_0x54cc04[_0x0f8d('0x2c')],_0x54cc04[_0x0f8d('0x2d')])[_0x0f8d('0xc')](function(_0x4af1c4){_0x5003c3(_0x4af1c4);});else{return db[_0x0f8d('0x29')][_0x0f8d('0x1d')]({'raw':!![],'where':{'CmHopperId':_0x3a8039['id']},'order':[[_0x0f8d('0x1e'),_0x0f8d('0x1f')]]})[_0x0f8d('0xc')](function(_0x7462b0){if(_0x7462b0)return activateAdditionalPhone(_0x3a8039,_0x54cc04['body'],_0x7462b0,_0x54cc04[_0x0f8d('0x2c')],_0x54cc04[_0x0f8d('0x2d')])[_0x0f8d('0xc')](function(_0x5d7a85){_0x5003c3(_0x5d7a85);});else{_0x5003c3({'id':_0x3a8039['id'],'phone':''});}})[_0x0f8d('0x2a')](function(_0x193f85){logger[_0x0f8d('0x11')](_0x0f8d('0x16'),_0x193f85['message']);_0x135163(_0x53dfc6['error'](0x1f4,_0x193f85[_0x0f8d('0x13')]));});}})[_0x0f8d('0x2a')](function(_0x1e1f96){logger[_0x0f8d('0x11')]('VerifyAdditionalPhones',_0x1e1f96[_0x0f8d('0x13')]);_0x135163(_0x53dfc6[_0x0f8d('0x11')](0x1f4,_0x1e1f96[_0x0f8d('0x13')]));});}else _0x5003c3(0x1);});});};function activateAdditionalPhone(_0x2ff7bf,_0x26a13e,_0x563be2,_0x3ffea0,_0x136da1){return new Promise(function(_0x5cf2c9,_0xa89ebe){var _0x48e44c;if(_['isNil'](_0x563be2[_0x0f8d('0x2e')])){_0x563be2[_0x0f8d('0x2e')]=moment();}if(moment()>moment(_0x563be2[_0x0f8d('0x2e')])){_0x48e44c=moment()['add'](_0x136da1||0x3,'minutes');}else{if(_0x563be2[_0x0f8d('0x1e')]==0x0){_0x48e44c=moment(_0x563be2[_0x0f8d('0x2e')]);}else{_0x48e44c=moment()[_0x0f8d('0x2f')](_0x136da1||0x3,_0x0f8d('0x30'));}}if(_[_0x0f8d('0x31')](_0x48e44c)){_0x48e44c=moment()['add'](_0x136da1||0x3,_0x0f8d('0x30'));}var _0x4d980f={'phone':_0x2ff7bf[_0x0f8d('0x32')],'active':0x0,'OrderBy':_['isNil'](_0x2ff7bf[_0x0f8d('0x1e')])?0x0:_0x2ff7bf[_0x0f8d('0x1e')],'scheduledat':moment()[_0x0f8d('0x2f')](_0x3ffea0||0x1,_0x0f8d('0x30')),'countbusyretry':_0x26a13e['countbusyretry'],'countcongestionretry':_0x26a13e[_0x0f8d('0x21')],'countnoanswerretry':_0x26a13e[_0x0f8d('0x22')],'countnosuchnumberretry':_0x26a13e[_0x0f8d('0x23')],'countdropretry':_0x26a13e['countdropretry'],'countabandonedretry':_0x26a13e[_0x0f8d('0x25')],'countmachineretry':_0x26a13e['countmachineretry'],'countagentrejectretry':_0x26a13e[_0x0f8d('0x33')],'createdAt':_0x26a13e[_0x0f8d('0x34')],'updatedAt':_0x26a13e[_0x0f8d('0x35')]};var _0x1497c3={'CmHopperId':_0x2ff7bf['id'],'phone':_0x563be2[_0x0f8d('0x32')],'active':0x0,'OrderBy':_['isNil'](_0x563be2[_0x0f8d('0x1e')])?0x0:_0x563be2[_0x0f8d('0x1e')],'scheduledat':_0x48e44c,'countbusyretry':_0x563be2[_0x0f8d('0x20')],'countcongestionretry':_0x563be2[_0x0f8d('0x21')],'countnoanswerretry':_0x563be2[_0x0f8d('0x22')],'countnosuchnumberretry':_0x563be2['countnosuchnumberretry'],'countdropretry':_0x563be2[_0x0f8d('0x24')],'countabandonedretry':_0x563be2[_0x0f8d('0x25')],'countmachineretry':_0x563be2[_0x0f8d('0x26')],'countagentrejectretry':_0x563be2[_0x0f8d('0x33')],'createdAt':_0x563be2['createdAt'],'updatedAt':_0x563be2[_0x0f8d('0x35')]};return db[_0x0f8d('0x36')]['transaction'](function(_0x5e8dfa){return db['CmHopperAdditionalPhone'][_0x0f8d('0x37')](_0x4d980f,{'where':{'id':_0x563be2['id']}},{'transaction':_0x5e8dfa})[_0x0f8d('0xc')](function(){return db[_0x0f8d('0x17')][_0x0f8d('0x37')](_0x1497c3,{'where':{'id':_0x2ff7bf['id']}},{'transaction':_0x5e8dfa});});})[_0x0f8d('0xc')](function(_0x342930){_0x5cf2c9({'id':_0x2ff7bf['id'],'phone':_0x563be2[_0x0f8d('0x32')]});})[_0x0f8d('0x2a')](function(_0x3b813d){logger[_0x0f8d('0x11')](_0x0f8d('0x38'),_0x3b813d[_0x0f8d('0x13')]);_0xa89ebe({'error':_0x3b813d[_0x0f8d('0x13')]});});});}exports[_0x0f8d('0x39')]=function(_0x5483be){var _0x218d9b=this;return new Promise(function(_0xd16a46,_0x593958){return db[_0x0f8d('0x17')][_0x0f8d('0x37')](_0x5483be[_0x0f8d('0x19')][_0x0f8d('0x3a')],{'where':{'id':_0x5483be[_0x0f8d('0x19')]['id']}})[_0x0f8d('0xc')](function(_0x163795){_0xd16a46(_0x163795);})[_0x0f8d('0x2a')](function(_0x49c0b6){logger[_0x0f8d('0x11')](_0x0f8d('0x39'),_0x49c0b6[_0x0f8d('0x13')]);_0x593958(_0x218d9b[_0x0f8d('0x11')](0x1f4,_0x49c0b6[_0x0f8d('0x13')]));});});};