34b8d621a116c541ac6098cc96c760cca2aa6055
[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 _0x5b44=['phone','countnoanswerretry','countnosuchnumberretry','countdropretry','updatedAt','createdAt','sequelize','transaction','update','activateAdditionalPhone','field','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','countcongestionretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','ASC','countbusyretry','VerifyAdditionalPhones','SwapAdditionalPhones','CmHopper','duration','waitTime','isNil','scheduledat','add','minutes'];(function(_0x35341f,_0x3f0f0c){var _0x18c76a=function(_0x2264ae){while(--_0x2264ae){_0x35341f['push'](_0x35341f['shift']());}};_0x18c76a(++_0x3f0f0c);}(_0x5b44,0x13c));var _0x45b4=function(_0x108d5f,_0x4d2dd8){_0x108d5f=_0x108d5f-0x0;var _0x3cf41e=_0x5b44[_0x108d5f];return _0x3cf41e;};'use strict';var _=require(_0x45b4('0x0'));var util=require(_0x45b4('0x1'));var moment=require(_0x45b4('0x2'));var BPromise=require(_0x45b4('0x3'));var rs=require(_0x45b4('0x4'));var fs=require('fs');var Redis=require(_0x45b4('0x5'));var db=require(_0x45b4('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x45b4('0x7'))(_0x45b4('0x8'));var config=require(_0x45b4('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x45b4('0xa')][_0x45b4('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x522881,_0x2da9b9,_0x5605dc){return new BPromise(function(_0x59d0ed,_0x252bf8){return client[_0x45b4('0xc')](_0x522881,_0x5605dc)[_0x45b4('0xd')](function(_0x22f833){logger[_0x45b4('0xe')](_0x45b4('0xf'),_0x2da9b9,'request\x20sent');logger[_0x45b4('0x10')](_0x45b4('0x11'),_0x2da9b9,_0x45b4('0x12'),JSON[_0x45b4('0x13')](_0x22f833));if(_0x22f833[_0x45b4('0x14')]){if(_0x22f833['error'][_0x45b4('0x15')]===0x1f4){logger[_0x45b4('0x14')](_0x45b4('0xf'),_0x2da9b9,_0x22f833[_0x45b4('0x14')][_0x45b4('0x16')]);return _0x252bf8(_0x22f833[_0x45b4('0x14')]['message']);}logger[_0x45b4('0x14')](_0x45b4('0xf'),_0x2da9b9,_0x22f833[_0x45b4('0x14')][_0x45b4('0x16')]);return _0x59d0ed(_0x22f833[_0x45b4('0x14')][_0x45b4('0x16')]);}else{logger[_0x45b4('0xe')](_0x45b4('0xf'),_0x2da9b9,_0x45b4('0x12'));_0x59d0ed(_0x22f833[_0x45b4('0x17')]['message']);}})[_0x45b4('0x18')](function(_0x18b3be){logger[_0x45b4('0x14')](_0x45b4('0xf'),_0x2da9b9,_0x18b3be);_0x252bf8(_0x18b3be);});});}exports['VerifyAdditionalPhones']=function(_0x356c2e){var _0x47299b=this;return new Promise(function(_0x55c930,_0x2238c0){return db['CmHopper'][_0x45b4('0x19')]({'raw':!![],'where':{'ContactId':_0x356c2e[_0x45b4('0x1a')][_0x45b4('0x1b')],'ListId':_0x356c2e[_0x45b4('0x1a')][_0x45b4('0x1c')],'VoiceQueueId':_0x356c2e['body'][_0x45b4('0x1d')]===undefined?null:_0x356c2e['body'][_0x45b4('0x1d')],'CampaignId':_0x356c2e['body'][_0x45b4('0x1e')]===undefined?null:_0x356c2e[_0x45b4('0x1a')][_0x45b4('0x1e')]}})[_0x45b4('0xd')](function(_0x5c7baf){if(_0x5c7baf!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x5c7baf['id'],'OrderBy':{'$gt':_0x5c7baf[_0x45b4('0x1f')]}},'order':[[_0x45b4('0x1f'),'ASC']]})['then'](function(_0x4f92f1){var _0x7953fc=0x0;if(_0x4f92f1){if(_0x4f92f1['countbusyretry']+_0x4f92f1[_0x45b4('0x20')]+_0x4f92f1['countnoanswerretry']+_0x4f92f1['countnosuchnumberretry']+_0x4f92f1['countdropretry']+_0x4f92f1[_0x45b4('0x21')]+_0x4f92f1[_0x45b4('0x22')]+_0x4f92f1[_0x45b4('0x23')]<_0x356c2e[_0x45b4('0x24')][_0x45b4('0x25')])_0x7953fc=0x1;_0x55c930({'additional':_0x7953fc});}else{return db[_0x45b4('0x26')][_0x45b4('0x19')]({'raw':!![],'where':{'CmHopperId':_0x5c7baf['id']},'order':[['OrderBy',_0x45b4('0x27')]]})[_0x45b4('0xd')](function(_0x1ce313){var _0x25cc4f=0x0;if(_0x1ce313){if(_0x1ce313[_0x45b4('0x28')]+_0x1ce313[_0x45b4('0x20')]+_0x1ce313['countnoanswerretry']+_0x1ce313['countnosuchnumberretry']+_0x1ce313['countdropretry']+_0x1ce313[_0x45b4('0x21')]+_0x1ce313['countmachineretry']+_0x1ce313['countagentrejectretry']<_0x356c2e[_0x45b4('0x24')][_0x45b4('0x25')])_0x25cc4f=0x1;_0x55c930({'additional':_0x25cc4f});}else{_0x55c930({'additional':0x0});}})[_0x45b4('0x18')](function(_0x9af02c){logger[_0x45b4('0x14')](_0x45b4('0x29'),_0x9af02c[_0x45b4('0x16')]);_0x2238c0(_0x47299b['error'](0x1f4,_0x9af02c[_0x45b4('0x16')]));});}})[_0x45b4('0x18')](function(_0x2a9233){logger[_0x45b4('0x14')]('VerifyAdditionalPhones',_0x2a9233['message']);_0x2238c0(_0x47299b['error'](0x1f4,_0x2a9233['message']));});}else _0x55c930({'additional':0x0});});});};exports[_0x45b4('0x2a')]=function(_0x43197a){var _0x2cbbc9=this;return new Promise(function(_0x549f19,_0x197d1a){return db[_0x45b4('0x2b')][_0x45b4('0x19')]({'raw':!![],'where':{'ContactId':_0x43197a['body'][_0x45b4('0x1b')],'ListId':_0x43197a[_0x45b4('0x1a')][_0x45b4('0x1c')],'VoiceQueueId':_0x43197a[_0x45b4('0x1a')][_0x45b4('0x1d')]===undefined?null:_0x43197a[_0x45b4('0x1a')]['VoiceQueueId'],'CampaignId':_0x43197a[_0x45b4('0x1a')][_0x45b4('0x1e')]===undefined?null:_0x43197a['body'][_0x45b4('0x1e')]}})['then'](function(_0x4d8391){if(_0x4d8391!=null){return db[_0x45b4('0x26')][_0x45b4('0x19')]({'raw':!![],'where':{'CmHopperId':_0x4d8391['id'],'OrderBy':{'$gte':_0x4d8391['OrderBy']}},'order':[[_0x45b4('0x1f'),_0x45b4('0x27')]]})['then'](function(_0x25683e){if(_0x25683e)return activateAdditionalPhone(_0x4d8391,_0x43197a[_0x45b4('0x1a')],_0x25683e,_0x43197a[_0x45b4('0x2c')],_0x43197a[_0x45b4('0x2d')])['then'](function(_0x5d192b){_0x549f19(_0x5d192b);});else{return db[_0x45b4('0x26')][_0x45b4('0x19')]({'raw':!![],'where':{'CmHopperId':_0x4d8391['id']},'order':[['OrderBy','ASC']]})['then'](function(_0x4c77b1){if(_0x4c77b1)return activateAdditionalPhone(_0x4d8391,_0x43197a[_0x45b4('0x1a')],_0x4c77b1,_0x43197a[_0x45b4('0x2c')],_0x43197a['waitTime'])['then'](function(_0xb09165){_0x549f19(_0xb09165);});else{_0x549f19({'id':_0x4d8391['id'],'phone':''});}})[_0x45b4('0x18')](function(_0xd959a4){logger[_0x45b4('0x14')](_0x45b4('0x29'),_0xd959a4[_0x45b4('0x16')]);_0x197d1a(_0x2cbbc9[_0x45b4('0x14')](0x1f4,_0xd959a4[_0x45b4('0x16')]));});}})['catch'](function(_0x31cf1f){logger[_0x45b4('0x14')]('VerifyAdditionalPhones',_0x31cf1f[_0x45b4('0x16')]);_0x197d1a(_0x2cbbc9[_0x45b4('0x14')](0x1f4,_0x31cf1f[_0x45b4('0x16')]));});}else _0x549f19(0x1);});});};function activateAdditionalPhone(_0x33978d,_0x34b59c,_0x11f008,_0x74b5c2,_0x53ae43){return new Promise(function(_0x29736d,_0x376fb4){var _0x3496b3;if(_[_0x45b4('0x2e')](_0x11f008[_0x45b4('0x2f')])){_0x11f008[_0x45b4('0x2f')]=moment();}if(moment()>moment(_0x11f008[_0x45b4('0x2f')])){_0x3496b3=moment()[_0x45b4('0x30')](_0x53ae43||0x3,_0x45b4('0x31'));}else{if(_0x11f008[_0x45b4('0x1f')]==0x0){_0x3496b3=moment(_0x11f008[_0x45b4('0x2f')]);}else{_0x3496b3=moment()[_0x45b4('0x30')](_0x53ae43||0x3,_0x45b4('0x31'));}}if(_[_0x45b4('0x2e')](_0x3496b3)){_0x3496b3=moment()['add'](_0x53ae43||0x3,_0x45b4('0x31'));}var _0x2e608b={'phone':_0x33978d[_0x45b4('0x32')],'active':0x0,'OrderBy':_[_0x45b4('0x2e')](_0x33978d[_0x45b4('0x1f')])?0x0:_0x33978d[_0x45b4('0x1f')],'scheduledat':moment()[_0x45b4('0x30')](_0x74b5c2||0x1,_0x45b4('0x31')),'countbusyretry':_0x34b59c[_0x45b4('0x28')],'countcongestionretry':_0x34b59c[_0x45b4('0x20')],'countnoanswerretry':_0x34b59c[_0x45b4('0x33')],'countnosuchnumberretry':_0x34b59c[_0x45b4('0x34')],'countdropretry':_0x34b59c[_0x45b4('0x35')],'countabandonedretry':_0x34b59c[_0x45b4('0x21')],'countmachineretry':_0x34b59c[_0x45b4('0x22')],'countagentrejectretry':_0x34b59c[_0x45b4('0x23')],'createdAt':_0x34b59c['createdAt'],'updatedAt':_0x34b59c[_0x45b4('0x36')]};var _0x4ee301={'CmHopperId':_0x33978d['id'],'phone':_0x11f008[_0x45b4('0x32')],'active':0x0,'OrderBy':_[_0x45b4('0x2e')](_0x11f008[_0x45b4('0x1f')])?0x0:_0x11f008[_0x45b4('0x1f')],'scheduledat':_0x3496b3,'countbusyretry':_0x11f008[_0x45b4('0x28')],'countcongestionretry':_0x11f008[_0x45b4('0x20')],'countnoanswerretry':_0x11f008[_0x45b4('0x33')],'countnosuchnumberretry':_0x11f008['countnosuchnumberretry'],'countdropretry':_0x11f008[_0x45b4('0x35')],'countabandonedretry':_0x11f008[_0x45b4('0x21')],'countmachineretry':_0x11f008[_0x45b4('0x22')],'countagentrejectretry':_0x11f008[_0x45b4('0x23')],'createdAt':_0x11f008[_0x45b4('0x37')],'updatedAt':_0x11f008[_0x45b4('0x36')]};return db[_0x45b4('0x38')][_0x45b4('0x39')](function(_0x54cb92){return db['CmHopperAdditionalPhone'][_0x45b4('0x3a')](_0x2e608b,{'where':{'id':_0x11f008['id']}},{'transaction':_0x54cb92})[_0x45b4('0xd')](function(){return db[_0x45b4('0x2b')][_0x45b4('0x3a')](_0x4ee301,{'where':{'id':_0x33978d['id']}},{'transaction':_0x54cb92});});})[_0x45b4('0xd')](function(_0x3a5149){_0x29736d({'id':_0x33978d['id'],'phone':_0x11f008['phone']});})[_0x45b4('0x18')](function(_0xf46590){logger[_0x45b4('0x14')](_0x45b4('0x3b'),_0xf46590[_0x45b4('0x16')]);_0x376fb4({'error':_0xf46590[_0x45b4('0x16')]});});});}exports['IncrementPreviewCounters']=function(_0x23cf13){var _0x5de578=this;return new Promise(function(_0x3e61ec,_0x589092){return db[_0x45b4('0x2b')]['update'](_0x23cf13[_0x45b4('0x1a')][_0x45b4('0x3c')],{'where':{'id':_0x23cf13[_0x45b4('0x1a')]['id']}})['then'](function(_0x10d222){_0x3e61ec(_0x10d222);})['catch'](function(_0x1f2518){logger[_0x45b4('0x14')]('IncrementPreviewCounters',_0x1f2518[_0x45b4('0x16')]);_0x589092(_0x5de578[_0x45b4('0x14')](0x1f4,_0x1f2518[_0x45b4('0x16')]));});});};