41c98f363cdda8fb30890c13c51f305407be793e
[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 _0xe360=['waitTime','duration','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','CmHopper','field','lodash','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','VerifyAdditionalPhones','findOne','ContactId','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','dialGlobalMaxRetry','entity','catch','SwapAdditionalPhones'];(function(_0x2da4c8,_0x1c85a6){var _0x5aece4=function(_0x115d22){while(--_0x115d22){_0x2da4c8['push'](_0x2da4c8['shift']());}};_0x5aece4(++_0x1c85a6);}(_0xe360,0x1b7));var _0x0e36=function(_0x9729d7,_0x1b79a8){_0x9729d7=_0x9729d7-0x0;var _0x3c4ac6=_0xe360[_0x9729d7];return _0x3c4ac6;};'use strict';var _=require(_0x0e36('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0e36('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0e36('0x2'))(_0x0e36('0x3'));var config=require(_0x0e36('0x4'));var jayson=require(_0x0e36('0x5'));var client=jayson[_0x0e36('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x553c6b,_0x300a38,_0x2751a6){return new BPromise(function(_0x9c7e75,_0x3d9351){return client['request'](_0x553c6b,_0x2751a6)[_0x0e36('0x7')](function(_0x5afa5c){logger['info'](_0x0e36('0x8'),_0x300a38,_0x0e36('0x9'));logger[_0x0e36('0xa')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x300a38,_0x0e36('0x9'),JSON[_0x0e36('0xb')](_0x5afa5c));if(_0x5afa5c[_0x0e36('0xc')]){if(_0x5afa5c['error'][_0x0e36('0xd')]===0x1f4){logger[_0x0e36('0xc')](_0x0e36('0x8'),_0x300a38,_0x5afa5c[_0x0e36('0xc')][_0x0e36('0xe')]);return _0x3d9351(_0x5afa5c[_0x0e36('0xc')][_0x0e36('0xe')]);}logger['error'](_0x0e36('0x8'),_0x300a38,_0x5afa5c[_0x0e36('0xc')][_0x0e36('0xe')]);return _0x9c7e75(_0x5afa5c[_0x0e36('0xc')][_0x0e36('0xe')]);}else{logger['info']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x300a38,_0x0e36('0x9'));_0x9c7e75(_0x5afa5c[_0x0e36('0xf')][_0x0e36('0xe')]);}})['catch'](function(_0x18ea63){logger[_0x0e36('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x300a38,_0x18ea63);_0x3d9351(_0x18ea63);});});}exports[_0x0e36('0x10')]=function(_0x5e83ba){var _0x42f25c=this;return new Promise(function(_0x4e49b4,_0x3fdc1f){return db['CmHopper'][_0x0e36('0x11')]({'raw':!![],'where':{'ContactId':_0x5e83ba['body'][_0x0e36('0x12')],'ListId':_0x5e83ba[_0x0e36('0x13')][_0x0e36('0x14')],'VoiceQueueId':_0x5e83ba[_0x0e36('0x13')]['VoiceQueueId']===undefined?null:_0x5e83ba[_0x0e36('0x13')][_0x0e36('0x15')],'CampaignId':_0x5e83ba[_0x0e36('0x13')][_0x0e36('0x16')]===undefined?null:_0x5e83ba['body']['CampaignId']}})['then'](function(_0x56bfdf){if(_0x56bfdf!=null){return db[_0x0e36('0x17')][_0x0e36('0x11')]({'raw':!![],'where':{'CmHopperId':_0x56bfdf['id'],'OrderBy':{'$gt':_0x56bfdf[_0x0e36('0x18')]}},'order':[[_0x0e36('0x18'),_0x0e36('0x19')]]})[_0x0e36('0x7')](function(_0x1192d2){var _0x8ff1e2=0x0;if(_0x1192d2){if(_0x1192d2[_0x0e36('0x1a')]+_0x1192d2[_0x0e36('0x1b')]+_0x1192d2[_0x0e36('0x1c')]+_0x1192d2[_0x0e36('0x1d')]+_0x1192d2[_0x0e36('0x1e')]+_0x1192d2[_0x0e36('0x1f')]+_0x1192d2[_0x0e36('0x20')]+_0x1192d2[_0x0e36('0x21')]<_0x5e83ba['entity'][_0x0e36('0x22')])_0x8ff1e2=0x1;_0x4e49b4({'additional':_0x8ff1e2});}else{return db[_0x0e36('0x17')][_0x0e36('0x11')]({'raw':!![],'where':{'CmHopperId':_0x56bfdf['id']},'order':[['OrderBy','ASC']]})[_0x0e36('0x7')](function(_0xe3395f){var _0x3e9dba=0x0;if(_0xe3395f){if(_0xe3395f[_0x0e36('0x1a')]+_0xe3395f[_0x0e36('0x1b')]+_0xe3395f[_0x0e36('0x1c')]+_0xe3395f[_0x0e36('0x1d')]+_0xe3395f[_0x0e36('0x1e')]+_0xe3395f['countabandonedretry']+_0xe3395f[_0x0e36('0x20')]+_0xe3395f[_0x0e36('0x21')]<_0x5e83ba[_0x0e36('0x23')][_0x0e36('0x22')])_0x3e9dba=0x1;_0x4e49b4({'additional':_0x3e9dba});}else{_0x4e49b4({'additional':0x0});}})[_0x0e36('0x24')](function(_0x389986){logger[_0x0e36('0xc')]('VerifyAdditionalPhones',_0x389986[_0x0e36('0xe')]);_0x3fdc1f(_0x42f25c[_0x0e36('0xc')](0x1f4,_0x389986[_0x0e36('0xe')]));});}})[_0x0e36('0x24')](function(_0x9745dd){logger[_0x0e36('0xc')](_0x0e36('0x10'),_0x9745dd['message']);_0x3fdc1f(_0x42f25c['error'](0x1f4,_0x9745dd['message']));});}else _0x4e49b4({'additional':0x0});});});};exports[_0x0e36('0x25')]=function(_0x50fe3c){var _0x3bf156=this;return new Promise(function(_0x69ab31,_0x454255){return db['CmHopper'][_0x0e36('0x11')]({'raw':!![],'where':{'ContactId':_0x50fe3c[_0x0e36('0x13')]['ContactId'],'ListId':_0x50fe3c[_0x0e36('0x13')][_0x0e36('0x14')],'VoiceQueueId':_0x50fe3c[_0x0e36('0x13')][_0x0e36('0x15')]===undefined?null:_0x50fe3c[_0x0e36('0x13')][_0x0e36('0x15')],'CampaignId':_0x50fe3c['body'][_0x0e36('0x16')]===undefined?null:_0x50fe3c['body'][_0x0e36('0x16')]}})[_0x0e36('0x7')](function(_0x1bf8a6){if(_0x1bf8a6!=null){return db[_0x0e36('0x17')][_0x0e36('0x11')]({'raw':!![],'where':{'CmHopperId':_0x1bf8a6['id'],'OrderBy':{'$gte':_0x1bf8a6[_0x0e36('0x18')]}},'order':[[_0x0e36('0x18'),_0x0e36('0x19')]]})[_0x0e36('0x7')](function(_0x332095){if(_0x332095)return activateAdditionalPhone(_0x1bf8a6,_0x50fe3c[_0x0e36('0x13')],_0x332095,_0x50fe3c['duration'],_0x50fe3c[_0x0e36('0x26')])[_0x0e36('0x7')](function(_0x4eef21){_0x69ab31(_0x4eef21);});else{return db['CmHopperAdditionalPhone'][_0x0e36('0x11')]({'raw':!![],'where':{'CmHopperId':_0x1bf8a6['id']},'order':[[_0x0e36('0x18'),_0x0e36('0x19')]]})[_0x0e36('0x7')](function(_0x4080c3){if(_0x4080c3)return activateAdditionalPhone(_0x1bf8a6,_0x50fe3c[_0x0e36('0x13')],_0x4080c3,_0x50fe3c[_0x0e36('0x27')],_0x50fe3c['waitTime'])[_0x0e36('0x7')](function(_0x2a38e3){_0x69ab31(_0x2a38e3);});else{_0x69ab31({'id':_0x1bf8a6['id'],'phone':''});}})[_0x0e36('0x24')](function(_0x590e7b){logger[_0x0e36('0xc')](_0x0e36('0x10'),_0x590e7b[_0x0e36('0xe')]);_0x454255(_0x3bf156['error'](0x1f4,_0x590e7b[_0x0e36('0xe')]));});}})[_0x0e36('0x24')](function(_0x5371bc){logger['error'](_0x0e36('0x10'),_0x5371bc[_0x0e36('0xe')]);_0x454255(_0x3bf156[_0x0e36('0xc')](0x1f4,_0x5371bc[_0x0e36('0xe')]));});}else _0x69ab31(0x1);});});};function activateAdditionalPhone(_0x20620d,_0x4b4abc,_0x4a1d75,_0x171080,_0x3ccfba){return new Promise(function(_0x5b3a32,_0x52102c){var _0x2b32ea;if(_['isNil'](_0x4a1d75[_0x0e36('0x28')])){_0x4a1d75[_0x0e36('0x28')]=moment();}if(moment()>moment(_0x4a1d75[_0x0e36('0x28')])){_0x2b32ea=moment()[_0x0e36('0x29')](_0x3ccfba||0x3,_0x0e36('0x2a'));}else{if(_0x4a1d75[_0x0e36('0x18')]==0x0){_0x2b32ea=moment(_0x4a1d75['scheduledat']);}else{_0x2b32ea=moment()[_0x0e36('0x29')](_0x3ccfba||0x3,'minutes');}}if(_[_0x0e36('0x2b')](_0x2b32ea)){_0x2b32ea=moment()['add'](_0x3ccfba||0x3,'minutes');}var _0xecfdb5={'phone':_0x20620d[_0x0e36('0x2c')],'active':0x0,'OrderBy':_[_0x0e36('0x2b')](_0x20620d[_0x0e36('0x18')])?0x0:_0x20620d[_0x0e36('0x18')],'scheduledat':moment()[_0x0e36('0x29')](_0x171080||0x1,_0x0e36('0x2a')),'countbusyretry':_0x4b4abc[_0x0e36('0x1a')],'countcongestionretry':_0x4b4abc[_0x0e36('0x1b')],'countnoanswerretry':_0x4b4abc[_0x0e36('0x1c')],'countnosuchnumberretry':_0x4b4abc[_0x0e36('0x1d')],'countdropretry':_0x4b4abc['countdropretry'],'countabandonedretry':_0x4b4abc['countabandonedretry'],'countmachineretry':_0x4b4abc[_0x0e36('0x20')],'countagentrejectretry':_0x4b4abc[_0x0e36('0x21')],'createdAt':_0x4b4abc[_0x0e36('0x2d')],'updatedAt':_0x4b4abc[_0x0e36('0x2e')]};var _0x30980c={'CmHopperId':_0x20620d['id'],'phone':_0x4a1d75[_0x0e36('0x2c')],'active':0x0,'OrderBy':_[_0x0e36('0x2b')](_0x4a1d75[_0x0e36('0x18')])?0x0:_0x4a1d75[_0x0e36('0x18')],'scheduledat':_0x2b32ea,'countbusyretry':_0x4a1d75[_0x0e36('0x1a')],'countcongestionretry':_0x4a1d75[_0x0e36('0x1b')],'countnoanswerretry':_0x4a1d75[_0x0e36('0x1c')],'countnosuchnumberretry':_0x4a1d75[_0x0e36('0x1d')],'countdropretry':_0x4a1d75[_0x0e36('0x1e')],'countabandonedretry':_0x4a1d75[_0x0e36('0x1f')],'countmachineretry':_0x4a1d75['countmachineretry'],'countagentrejectretry':_0x4a1d75[_0x0e36('0x21')],'createdAt':_0x4a1d75[_0x0e36('0x2d')],'updatedAt':_0x4a1d75[_0x0e36('0x2e')]};return db['sequelize'][_0x0e36('0x2f')](function(_0x4e98a5){return db[_0x0e36('0x17')][_0x0e36('0x30')](_0xecfdb5,{'where':{'id':_0x4a1d75['id']}},{'transaction':_0x4e98a5})['then'](function(){return db['CmHopper'][_0x0e36('0x30')](_0x30980c,{'where':{'id':_0x20620d['id']}},{'transaction':_0x4e98a5});});})[_0x0e36('0x7')](function(_0x187631){_0x5b3a32({'id':_0x20620d['id'],'phone':_0x4a1d75[_0x0e36('0x2c')]});})[_0x0e36('0x24')](function(_0x1b5556){logger[_0x0e36('0xc')](_0x0e36('0x31'),_0x1b5556[_0x0e36('0xe')]);_0x52102c({'error':_0x1b5556['message']});});});}exports[_0x0e36('0x32')]=function(_0x8132dc){var _0x3a871e=this;return new Promise(function(_0x85b1b5,_0x45a5ba){return db[_0x0e36('0x33')][_0x0e36('0x30')](_0x8132dc['body'][_0x0e36('0x34')],{'where':{'id':_0x8132dc[_0x0e36('0x13')]['id']}})[_0x0e36('0x7')](function(_0x252d32){_0x85b1b5(_0x252d32);})[_0x0e36('0x24')](function(_0x157ce0){logger[_0x0e36('0xc')]('IncrementPreviewCounters',_0x157ce0['message']);_0x45a5ba(_0x3a871e[_0x0e36('0xc')](0x1f4,_0x157ce0[_0x0e36('0xe')]));});});};