3eb5f82ee45d1481420467d3666a595f27aaa7ae
[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 _0xf87d=['countnosuchnumberretry','countabandonedretry','dialGlobalMaxRetry','countdropretry','countmachineretry','countagentrejectretry','entity','SwapAdditionalPhones','CmHopper','ContactId','then','duration','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','field','IncrementPreviewCounters','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','VerifyAdditionalPhones','findOne','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xf87d,0x13c));var _0xdf87=function(_0x10b593,_0x4e497d){_0x10b593=_0x10b593-0x0;var _0x40cf20=_0xf87d[_0x10b593];return _0x40cf20;};'use strict';var _=require(_0xdf87('0x0'));var util=require(_0xdf87('0x1'));var moment=require(_0xdf87('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdf87('0x3'));var db=require(_0xdf87('0x4'))['db'];var utils=require(_0xdf87('0x5'));var logger=require(_0xdf87('0x6'))(_0xdf87('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xdf87('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5174b3,_0x45397c,_0x16bda4){return new BPromise(function(_0x522a00,_0x58f1d1){return client[_0xdf87('0x9')](_0x5174b3,_0x16bda4)['then'](function(_0x149ae3){logger[_0xdf87('0xa')](_0xdf87('0xb'),_0x45397c,_0xdf87('0xc'));logger[_0xdf87('0xd')](_0xdf87('0xe'),_0x45397c,'request\x20sent',JSON['stringify'](_0x149ae3));if(_0x149ae3[_0xdf87('0xf')]){if(_0x149ae3[_0xdf87('0xf')][_0xdf87('0x10')]===0x1f4){logger[_0xdf87('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x45397c,_0x149ae3[_0xdf87('0xf')][_0xdf87('0x11')]);return _0x58f1d1(_0x149ae3[_0xdf87('0xf')]['message']);}logger[_0xdf87('0xf')](_0xdf87('0xb'),_0x45397c,_0x149ae3[_0xdf87('0xf')][_0xdf87('0x11')]);return _0x522a00(_0x149ae3[_0xdf87('0xf')][_0xdf87('0x11')]);}else{logger[_0xdf87('0xa')](_0xdf87('0xb'),_0x45397c,_0xdf87('0xc'));_0x522a00(_0x149ae3[_0xdf87('0x12')][_0xdf87('0x11')]);}})[_0xdf87('0x13')](function(_0x1147c5){logger[_0xdf87('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x45397c,_0x1147c5);_0x58f1d1(_0x1147c5);});});}exports[_0xdf87('0x14')]=function(_0x13b1bd){var _0x471125=this;return new Promise(function(_0x46e018,_0x34f392){return db['CmHopper'][_0xdf87('0x15')]({'raw':!![],'where':{'ContactId':_0x13b1bd['body']['ContactId'],'ListId':_0x13b1bd[_0xdf87('0x16')][_0xdf87('0x17')],'VoiceQueueId':_0x13b1bd[_0xdf87('0x16')]['VoiceQueueId']===undefined?null:_0x13b1bd[_0xdf87('0x16')][_0xdf87('0x18')],'CampaignId':_0x13b1bd[_0xdf87('0x16')][_0xdf87('0x19')]===undefined?null:_0x13b1bd['body'][_0xdf87('0x19')]}})['then'](function(_0x2a4109){if(_0x2a4109!=null){return db[_0xdf87('0x1a')][_0xdf87('0x15')]({'raw':!![],'where':{'CmHopperId':_0x2a4109['id'],'OrderBy':{'$gt':_0x2a4109[_0xdf87('0x1b')]}},'order':[[_0xdf87('0x1b'),_0xdf87('0x1c')]]})['then'](function(_0x5d56b0){var _0x396661=0x0;if(_0x5d56b0){if(_0x5d56b0[_0xdf87('0x1d')]+_0x5d56b0[_0xdf87('0x1e')]+_0x5d56b0[_0xdf87('0x1f')]+_0x5d56b0[_0xdf87('0x20')]+_0x5d56b0['countdropretry']+_0x5d56b0[_0xdf87('0x21')]+_0x5d56b0['countmachineretry']+_0x5d56b0['countagentrejectretry']<_0x13b1bd['entity'][_0xdf87('0x22')])_0x396661=0x1;_0x46e018({'additional':_0x396661});}else{return db[_0xdf87('0x1a')][_0xdf87('0x15')]({'raw':!![],'where':{'CmHopperId':_0x2a4109['id']},'order':[[_0xdf87('0x1b'),_0xdf87('0x1c')]]})['then'](function(_0x42e491){var _0x37f81c=0x0;if(_0x42e491){if(_0x42e491[_0xdf87('0x1d')]+_0x42e491[_0xdf87('0x1e')]+_0x42e491[_0xdf87('0x1f')]+_0x42e491[_0xdf87('0x20')]+_0x42e491[_0xdf87('0x23')]+_0x42e491[_0xdf87('0x21')]+_0x42e491[_0xdf87('0x24')]+_0x42e491[_0xdf87('0x25')]<_0x13b1bd[_0xdf87('0x26')][_0xdf87('0x22')])_0x37f81c=0x1;_0x46e018({'additional':_0x37f81c});}else{_0x46e018({'additional':0x0});}})[_0xdf87('0x13')](function(_0x506d79){logger[_0xdf87('0xf')]('VerifyAdditionalPhones',_0x506d79[_0xdf87('0x11')]);_0x34f392(_0x471125[_0xdf87('0xf')](0x1f4,_0x506d79['message']));});}})['catch'](function(_0xed8b81){logger[_0xdf87('0xf')]('VerifyAdditionalPhones',_0xed8b81[_0xdf87('0x11')]);_0x34f392(_0x471125[_0xdf87('0xf')](0x1f4,_0xed8b81[_0xdf87('0x11')]));});}else _0x46e018({'additional':0x0});});});};exports[_0xdf87('0x27')]=function(_0x21f690){var _0x330c5e=this;return new Promise(function(_0x4a1194,_0x278e6a){return db[_0xdf87('0x28')][_0xdf87('0x15')]({'raw':!![],'where':{'ContactId':_0x21f690[_0xdf87('0x16')][_0xdf87('0x29')],'ListId':_0x21f690['body'][_0xdf87('0x17')],'VoiceQueueId':_0x21f690['body'][_0xdf87('0x18')]===undefined?null:_0x21f690[_0xdf87('0x16')][_0xdf87('0x18')],'CampaignId':_0x21f690[_0xdf87('0x16')][_0xdf87('0x19')]===undefined?null:_0x21f690[_0xdf87('0x16')][_0xdf87('0x19')]}})[_0xdf87('0x2a')](function(_0x2fefc2){if(_0x2fefc2!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x2fefc2['id'],'OrderBy':{'$gte':_0x2fefc2[_0xdf87('0x1b')]}},'order':[[_0xdf87('0x1b'),_0xdf87('0x1c')]]})[_0xdf87('0x2a')](function(_0x35186f){if(_0x35186f)return activateAdditionalPhone(_0x2fefc2,_0x21f690[_0xdf87('0x16')],_0x35186f,_0x21f690[_0xdf87('0x2b')],_0x21f690[_0xdf87('0x2c')])[_0xdf87('0x2a')](function(_0x3b2287){_0x4a1194(_0x3b2287);});else{return db[_0xdf87('0x1a')][_0xdf87('0x15')]({'raw':!![],'where':{'CmHopperId':_0x2fefc2['id']},'order':[[_0xdf87('0x1b'),_0xdf87('0x1c')]]})['then'](function(_0x5072d4){if(_0x5072d4)return activateAdditionalPhone(_0x2fefc2,_0x21f690[_0xdf87('0x16')],_0x5072d4,_0x21f690[_0xdf87('0x2b')],_0x21f690[_0xdf87('0x2c')])['then'](function(_0xf6e220){_0x4a1194(_0xf6e220);});else{_0x4a1194({'id':_0x2fefc2['id'],'phone':''});}})[_0xdf87('0x13')](function(_0x5247ef){logger['error'](_0xdf87('0x14'),_0x5247ef[_0xdf87('0x11')]);_0x278e6a(_0x330c5e['error'](0x1f4,_0x5247ef[_0xdf87('0x11')]));});}})[_0xdf87('0x13')](function(_0x5afb1e){logger[_0xdf87('0xf')]('VerifyAdditionalPhones',_0x5afb1e[_0xdf87('0x11')]);_0x278e6a(_0x330c5e[_0xdf87('0xf')](0x1f4,_0x5afb1e[_0xdf87('0x11')]));});}else _0x4a1194(0x1);});});};function activateAdditionalPhone(_0xcc7394,_0x1bb6dd,_0x365668,_0x534adc,_0x4e682a){return new Promise(function(_0x23156a,_0x2d1ada){var _0x375aeb;if(_['isNil'](_0x365668[_0xdf87('0x2d')])){_0x365668[_0xdf87('0x2d')]=moment();}if(moment()>moment(_0x365668[_0xdf87('0x2d')])){_0x375aeb=moment()[_0xdf87('0x2e')](_0x4e682a||0x3,'minutes');}else{if(_0x365668[_0xdf87('0x1b')]==0x0){_0x375aeb=moment(_0x365668[_0xdf87('0x2d')]);}else{_0x375aeb=moment()[_0xdf87('0x2e')](_0x4e682a||0x3,_0xdf87('0x2f'));}}if(_[_0xdf87('0x30')](_0x375aeb)){_0x375aeb=moment()[_0xdf87('0x2e')](_0x4e682a||0x3,_0xdf87('0x2f'));}var _0x2daa1d={'phone':_0xcc7394[_0xdf87('0x31')],'active':0x0,'OrderBy':_[_0xdf87('0x30')](_0xcc7394['OrderBy'])?0x0:_0xcc7394['OrderBy'],'scheduledat':moment()[_0xdf87('0x2e')](_0x534adc||0x1,_0xdf87('0x2f')),'countbusyretry':_0x1bb6dd[_0xdf87('0x1d')],'countcongestionretry':_0x1bb6dd['countcongestionretry'],'countnoanswerretry':_0x1bb6dd['countnoanswerretry'],'countnosuchnumberretry':_0x1bb6dd[_0xdf87('0x20')],'countdropretry':_0x1bb6dd[_0xdf87('0x23')],'countabandonedretry':_0x1bb6dd[_0xdf87('0x21')],'countmachineretry':_0x1bb6dd[_0xdf87('0x24')],'countagentrejectretry':_0x1bb6dd[_0xdf87('0x25')],'createdAt':_0x1bb6dd[_0xdf87('0x32')],'updatedAt':_0x1bb6dd[_0xdf87('0x33')]};var _0xd9997f={'CmHopperId':_0xcc7394['id'],'phone':_0x365668[_0xdf87('0x31')],'active':0x0,'OrderBy':_[_0xdf87('0x30')](_0x365668[_0xdf87('0x1b')])?0x0:_0x365668[_0xdf87('0x1b')],'scheduledat':_0x375aeb,'countbusyretry':_0x365668[_0xdf87('0x1d')],'countcongestionretry':_0x365668[_0xdf87('0x1e')],'countnoanswerretry':_0x365668['countnoanswerretry'],'countnosuchnumberretry':_0x365668[_0xdf87('0x20')],'countdropretry':_0x365668[_0xdf87('0x23')],'countabandonedretry':_0x365668[_0xdf87('0x21')],'countmachineretry':_0x365668[_0xdf87('0x24')],'countagentrejectretry':_0x365668[_0xdf87('0x25')],'createdAt':_0x365668[_0xdf87('0x32')],'updatedAt':_0x365668[_0xdf87('0x33')]};return db[_0xdf87('0x34')][_0xdf87('0x35')](function(_0x656e01){return db[_0xdf87('0x1a')]['update'](_0x2daa1d,{'where':{'id':_0x365668['id']}},{'transaction':_0x656e01})[_0xdf87('0x2a')](function(){return db['CmHopper'][_0xdf87('0x36')](_0xd9997f,{'where':{'id':_0xcc7394['id']}},{'transaction':_0x656e01});});})[_0xdf87('0x2a')](function(_0x417b05){_0x23156a({'id':_0xcc7394['id'],'phone':_0x365668[_0xdf87('0x31')]});})[_0xdf87('0x13')](function(_0x5df7c4){logger[_0xdf87('0xf')](_0xdf87('0x37'),_0x5df7c4['message']);_0x2d1ada({'error':_0x5df7c4['message']});});});}exports['IncrementPreviewCounters']=function(_0x261ecb){var _0x19e7f1=this;return new Promise(function(_0x3e641b,_0x32595f){return db[_0xdf87('0x28')][_0xdf87('0x36')](_0x261ecb[_0xdf87('0x16')][_0xdf87('0x38')],{'where':{'id':_0x261ecb[_0xdf87('0x16')]['id']}})[_0xdf87('0x2a')](function(_0x34e0f7){_0x3e641b(_0x34e0f7);})['catch'](function(_0x3f7425){logger['error'](_0xdf87('0x39'),_0x3f7425['message']);_0x32595f(_0x19e7f1[_0xdf87('0xf')](0x1f4,_0x3f7425[_0xdf87('0x11')]));});});};