9c6646af542a4f7c440aa20401f1cf0dd2b450a6
[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 _0xba9c=['hopperToAdd','additionalToHop','update','IncrementPreviewCounters','field','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','info','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','result','catch','VerifyAdditionalPhones','CmHopper','body','ContactId','ListId','VoiceQueueId','then','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countnoanswerretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','findOne','countcongestionretry','countdropretry','CampaignId','duration','waitTime','scheduledat','add','minutes','countnosuchnumberretry','createdAt','updatedAt','phone'];(function(_0x369e27,_0x7f5136){var _0x15b494=function(_0x4bca8d){while(--_0x4bca8d){_0x369e27['push'](_0x369e27['shift']());}};_0x15b494(++_0x7f5136);}(_0xba9c,0xad));var _0xcba9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xba9c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xcba9('0x0'));var moment=require(_0xcba9('0x1'));var BPromise=require(_0xcba9('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcba9('0x3'));var db=require(_0xcba9('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xcba9('0x5'))(_0xcba9('0x6'));var config=require(_0xcba9('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xcba9('0x8')][_0xcba9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x98f66c,_0x2a3c6b,_0x5653bb){return new BPromise(function(_0x576e9c,_0x4a11da){return client[_0xcba9('0xa')](_0x98f66c,_0x5653bb)['then'](function(_0x39815f){logger[_0xcba9('0xb')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2a3c6b,'request\x20sent');logger[_0xcba9('0xc')](_0xcba9('0xd'),_0x2a3c6b,_0xcba9('0xe'),JSON['stringify'](_0x39815f));if(_0x39815f[_0xcba9('0xf')]){if(_0x39815f[_0xcba9('0xf')][_0xcba9('0x10')]===0x1f4){logger['error'](_0xcba9('0x11'),_0x2a3c6b,_0x39815f[_0xcba9('0xf')][_0xcba9('0x12')]);return _0x4a11da(_0x39815f[_0xcba9('0xf')][_0xcba9('0x12')]);}logger[_0xcba9('0xf')](_0xcba9('0x11'),_0x2a3c6b,_0x39815f[_0xcba9('0xf')][_0xcba9('0x12')]);return _0x576e9c(_0x39815f[_0xcba9('0xf')][_0xcba9('0x12')]);}else{logger['info'](_0xcba9('0x11'),_0x2a3c6b,_0xcba9('0xe'));_0x576e9c(_0x39815f[_0xcba9('0x13')][_0xcba9('0x12')]);}})[_0xcba9('0x14')](function(_0xc2d12c){logger[_0xcba9('0xf')](_0xcba9('0x11'),_0x2a3c6b,_0xc2d12c);_0x4a11da(_0xc2d12c);});});}exports[_0xcba9('0x15')]=function(_0xf22f9){var _0x523c53=this;return new Promise(function(_0x120761,_0x50a833){return db[_0xcba9('0x16')]['findOne']({'raw':!![],'where':{'ContactId':_0xf22f9[_0xcba9('0x17')][_0xcba9('0x18')],'ListId':_0xf22f9[_0xcba9('0x17')][_0xcba9('0x19')],'VoiceQueueId':_0xf22f9[_0xcba9('0x17')][_0xcba9('0x1a')]===undefined?null:_0xf22f9[_0xcba9('0x17')][_0xcba9('0x1a')],'CampaignId':_0xf22f9[_0xcba9('0x17')]['CampaignId']===undefined?null:_0xf22f9[_0xcba9('0x17')]['CampaignId']}})[_0xcba9('0x1b')](function(_0x4592af){if(_0x4592af!=null){return db[_0xcba9('0x1c')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x4592af['id'],'OrderBy':{'$gt':_0x4592af[_0xcba9('0x1d')]}},'order':[[_0xcba9('0x1d'),_0xcba9('0x1e')]]})[_0xcba9('0x1b')](function(_0x261b49){var _0xa4a3e1=0x0;if(_0x261b49){if(_0x261b49[_0xcba9('0x1f')]+_0x261b49['countcongestionretry']+_0x261b49[_0xcba9('0x20')]+_0x261b49['countnosuchnumberretry']+_0x261b49['countdropretry']+_0x261b49[_0xcba9('0x21')]+_0x261b49[_0xcba9('0x22')]+_0x261b49[_0xcba9('0x23')]<_0xf22f9[_0xcba9('0x24')][_0xcba9('0x25')])_0xa4a3e1=0x1;_0x120761({'additional':_0xa4a3e1});}else{return db[_0xcba9('0x1c')][_0xcba9('0x26')]({'raw':!![],'where':{'CmHopperId':_0x4592af['id']},'order':[[_0xcba9('0x1d'),_0xcba9('0x1e')]]})[_0xcba9('0x1b')](function(_0x3dbb0a){var _0x13b86f=0x0;if(_0x3dbb0a){if(_0x3dbb0a[_0xcba9('0x1f')]+_0x3dbb0a[_0xcba9('0x27')]+_0x3dbb0a['countnoanswerretry']+_0x3dbb0a['countnosuchnumberretry']+_0x3dbb0a[_0xcba9('0x28')]+_0x3dbb0a[_0xcba9('0x21')]+_0x3dbb0a['countmachineretry']+_0x3dbb0a[_0xcba9('0x23')]<_0xf22f9[_0xcba9('0x24')][_0xcba9('0x25')])_0x13b86f=0x1;_0x120761({'additional':_0x13b86f});}else{_0x120761({'additional':0x0});}})[_0xcba9('0x14')](function(_0x11a0b5){logger[_0xcba9('0xf')]('VerifyAdditionalPhones',_0x11a0b5['message'],_0xf22f9);_0x50a833(_0x523c53[_0xcba9('0xf')](0x1f4,_0x11a0b5['message']));});}})[_0xcba9('0x14')](function(_0x39a8bc){logger['error'](_0xcba9('0x15'),_0x39a8bc[_0xcba9('0x12')],_0xf22f9);_0x50a833(_0x523c53[_0xcba9('0xf')](0x1f4,_0x39a8bc[_0xcba9('0x12')]));});}else _0x120761({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x5644d4){var _0x539d3b=this;return new Promise(function(_0x363f5b,_0x5315f5){return db['CmHopper'][_0xcba9('0x26')]({'raw':!![],'where':{'ContactId':_0x5644d4['body'][_0xcba9('0x18')],'ListId':_0x5644d4[_0xcba9('0x17')][_0xcba9('0x19')],'VoiceQueueId':_0x5644d4[_0xcba9('0x17')]['VoiceQueueId']===undefined?null:_0x5644d4[_0xcba9('0x17')][_0xcba9('0x1a')],'CampaignId':_0x5644d4[_0xcba9('0x17')]['CampaignId']===undefined?null:_0x5644d4['body'][_0xcba9('0x29')]}})[_0xcba9('0x1b')](function(_0x1e5a76){if(_0x1e5a76!=null){return db[_0xcba9('0x1c')][_0xcba9('0x26')]({'raw':!![],'where':{'CmHopperId':_0x1e5a76['id'],'OrderBy':{'$gt':_0x1e5a76[_0xcba9('0x1d')]}},'order':[['OrderBy',_0xcba9('0x1e')]]})[_0xcba9('0x1b')](function(_0x17ca58){if(_0x17ca58)return activateAdditionalPhone(_0x1e5a76,_0x5644d4[_0xcba9('0x17')],_0x17ca58,_0x5644d4[_0xcba9('0x2a')],_0x5644d4['waitTime'])[_0xcba9('0x1b')](function(_0x547463){_0x363f5b(_0x547463);});else{return db[_0xcba9('0x1c')][_0xcba9('0x26')]({'raw':!![],'where':{'CmHopperId':_0x1e5a76['id']},'order':[[_0xcba9('0x1d'),'ASC']]})[_0xcba9('0x1b')](function(_0x2a16c5){if(_0x2a16c5)return activateAdditionalPhone(_0x1e5a76,_0x5644d4['body'],_0x2a16c5,_0x5644d4['duration'],_0x5644d4[_0xcba9('0x2b')])[_0xcba9('0x1b')](function(_0x404816){_0x363f5b(_0x404816);});else{_0x363f5b({'id':_0x1e5a76['id'],'phone':''});}})[_0xcba9('0x14')](function(_0xda9343){logger[_0xcba9('0xf')](_0xcba9('0x15'),_0xda9343[_0xcba9('0x12')],_0x5644d4);_0x5315f5(_0x539d3b[_0xcba9('0xf')](0x1f4,_0xda9343[_0xcba9('0x12')]));});}})[_0xcba9('0x14')](function(_0x49c8d3){logger[_0xcba9('0xf')]('VerifyAdditionalPhones',_0x49c8d3[_0xcba9('0x12')],_0x5644d4);_0x5315f5(_0x539d3b[_0xcba9('0xf')](0x1f4,_0x49c8d3[_0xcba9('0x12')]));});}else _0x363f5b(0x1);});});};function activateAdditionalPhone(_0x225590,_0x230bef,_0x31d8c6,_0x9b561e,_0x588a7f){return new Promise(function(_0x3e4149,_0x31bd1c){logger[_0xcba9('0xb')](_0xcba9('0x15'),_0x31d8c6);var _0x3856f2;if(moment()>moment(_0x31d8c6[_0xcba9('0x2c')])){_0x3856f2=moment()[_0xcba9('0x2d')](_0x588a7f||0x3,_0xcba9('0x2e'));}else{if(_0x31d8c6[_0xcba9('0x1d')]==0x0){_0x3856f2=moment(_0x31d8c6['scheduledat']);}else{_0x3856f2=moment()[_0xcba9('0x2d')](_0x588a7f||0x3,_0xcba9('0x2e'));}}var _0x361a38={'phone':_0x225590['phone'],'active':0x0,'OrderBy':_['isNil'](_0x225590[_0xcba9('0x1d')])?0x0:_0x225590[_0xcba9('0x1d')],'scheduledat':moment()[_0xcba9('0x2d')](_0x9b561e||0x1,_0xcba9('0x2e')),'countbusyretry':_0x230bef[_0xcba9('0x1f')],'countcongestionretry':_0x230bef[_0xcba9('0x27')],'countnoanswerretry':_0x230bef['countnoanswerretry'],'countnosuchnumberretry':_0x230bef[_0xcba9('0x2f')],'countdropretry':_0x230bef[_0xcba9('0x28')],'countabandonedretry':_0x230bef[_0xcba9('0x21')],'countmachineretry':_0x230bef[_0xcba9('0x22')],'countagentrejectretry':_0x230bef['countagentrejectretry'],'createdAt':_0x230bef[_0xcba9('0x30')],'updatedAt':_0x230bef[_0xcba9('0x31')]};var _0x39a586={'CmHopperId':_0x225590['id'],'phone':_0x31d8c6[_0xcba9('0x32')],'active':0x0,'OrderBy':_['isNil'](_0x31d8c6['OrderBy'])?0x0:_0x31d8c6['OrderBy'],'scheduledat':_0x3856f2,'countbusyretry':_0x31d8c6[_0xcba9('0x1f')],'countcongestionretry':_0x31d8c6[_0xcba9('0x27')],'countnoanswerretry':_0x31d8c6['countnoanswerretry'],'countnosuchnumberretry':_0x230bef['countnosuchnumberretry'],'countdropretry':_0x230bef['countdropretry'],'countabandonedretry':_0x230bef[_0xcba9('0x21')],'countmachineretry':_0x230bef[_0xcba9('0x22')],'countagentrejectretry':_0x230bef[_0xcba9('0x23')],'createdAt':_0x31d8c6[_0xcba9('0x30')],'updatedAt':_0x31d8c6[_0xcba9('0x31')]};logger['info'](_0xcba9('0x33'),_0x361a38);logger['info'](_0xcba9('0x34'),_0x39a586);return db['sequelize']['transaction'](function(_0x3ad21e){return db[_0xcba9('0x1c')]['update'](_0x361a38,{'where':{'id':_0x31d8c6['id']}},{'transaction':_0x3ad21e})[_0xcba9('0x1b')](function(){return db[_0xcba9('0x16')][_0xcba9('0x35')](_0x39a586,{'where':{'id':_0x225590['id']}},{'transaction':_0x3ad21e});});})[_0xcba9('0x1b')](function(_0x10461a){_0x3e4149({'id':_0x225590['id'],'phone':_0x31d8c6[_0xcba9('0x32')]});})[_0xcba9('0x14')](function(_0xcc9c61){logger[_0xcba9('0xf')](_0xcba9('0x15'),_0xcc9c61[_0xcba9('0x12')],req);_0x31bd1c(_this[_0xcba9('0xf')](0x1f4,_0xcc9c61[_0xcba9('0x12')]));});});}exports[_0xcba9('0x36')]=function(_0x1899f6){var _0x3fc75e=this;return new Promise(function(_0x1519e0,_0x30e847){return db['CmHopper'][_0xcba9('0x35')](_0x1899f6[_0xcba9('0x17')][_0xcba9('0x37')],{'where':{'id':_0x1899f6[_0xcba9('0x17')]['id']}})['then'](function(_0x15a094){_0x1519e0(_0x15a094);})[_0xcba9('0x14')](function(_0x945aea){logger[_0xcba9('0xf')](_0xcba9('0x36'),_0x945aea[_0xcba9('0x12')],_0x1899f6);_0x30e847(_0x3fc75e[_0xcba9('0xf')](0x1f4,_0x945aea[_0xcba9('0x12')]));});});};