10e3fe1cae471cb4d8c66823a36a7f865ac58668
[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 _0x0111=['waitTime','isNil','scheduledat','add','minutes','phone','countcongestionretry','createdAt','updatedAt','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','VerifyAdditionalPhones','CmHopper','body','ContactId','VoiceQueueId','CampaignId','then','CmHopperAdditionalPhone','findOne','OrderBy','ASC','countnoanswerretry','countabandonedretry','countagentrejectretry','entity','dialGlobalMaxRetry','countbusyretry','countnosuchnumberretry','countdropretry','countmachineretry','SwapAdditionalPhones','ListId','duration'];(function(_0x4b83d5,_0x2d7426){var _0x1588cd=function(_0x250e3e){while(--_0x250e3e){_0x4b83d5['push'](_0x4b83d5['shift']());}};_0x1588cd(++_0x2d7426);}(_0x0111,0x1ce));var _0x1011=function(_0x35dd16,_0x43476f){_0x35dd16=_0x35dd16-0x0;var _0x1547f2=_0x0111[_0x35dd16];return _0x1547f2;};'use strict';var _=require('lodash');var util=require(_0x1011('0x0'));var moment=require(_0x1011('0x1'));var BPromise=require(_0x1011('0x2'));var rs=require(_0x1011('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1011('0x4'))['db'];var utils=require(_0x1011('0x5'));var logger=require('../../config/logger')(_0x1011('0x6'));var config=require('../../config/environment');var jayson=require(_0x1011('0x7'));var client=jayson[_0x1011('0x8')][_0x1011('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4e0cc1,_0x4d6487,_0x44e1b1){return new BPromise(function(_0x47bb6a,_0x431fc3){return client['request'](_0x4e0cc1,_0x44e1b1)['then'](function(_0x23681b){logger['info'](_0x1011('0xa'),_0x4d6487,_0x1011('0xb'));logger['debug'](_0x1011('0xc'),_0x4d6487,_0x1011('0xb'),JSON[_0x1011('0xd')](_0x23681b));if(_0x23681b[_0x1011('0xe')]){if(_0x23681b[_0x1011('0xe')]['code']===0x1f4){logger[_0x1011('0xe')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x4d6487,_0x23681b[_0x1011('0xe')]['message']);return _0x431fc3(_0x23681b['error'][_0x1011('0xf')]);}logger[_0x1011('0xe')](_0x1011('0xa'),_0x4d6487,_0x23681b[_0x1011('0xe')]['message']);return _0x47bb6a(_0x23681b[_0x1011('0xe')][_0x1011('0xf')]);}else{logger[_0x1011('0x10')](_0x1011('0xa'),_0x4d6487,'request\x20sent');_0x47bb6a(_0x23681b[_0x1011('0x11')]['message']);}})[_0x1011('0x12')](function(_0x568d98){logger['error'](_0x1011('0xa'),_0x4d6487,_0x568d98);_0x431fc3(_0x568d98);});});}exports[_0x1011('0x13')]=function(_0x53c81a){var _0x276c0e=this;return new Promise(function(_0x21bb4e,_0x3db612){return db[_0x1011('0x14')]['findOne']({'raw':!![],'where':{'ContactId':_0x53c81a[_0x1011('0x15')][_0x1011('0x16')],'ListId':_0x53c81a[_0x1011('0x15')]['ListId'],'VoiceQueueId':_0x53c81a['body']['VoiceQueueId']===undefined?null:_0x53c81a[_0x1011('0x15')][_0x1011('0x17')],'CampaignId':_0x53c81a[_0x1011('0x15')][_0x1011('0x18')]===undefined?null:_0x53c81a[_0x1011('0x15')][_0x1011('0x18')]}})[_0x1011('0x19')](function(_0x16740b){if(_0x16740b!=null){return db[_0x1011('0x1a')][_0x1011('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x16740b['id'],'OrderBy':{'$gt':_0x16740b[_0x1011('0x1c')]}},'order':[[_0x1011('0x1c'),_0x1011('0x1d')]]})[_0x1011('0x19')](function(_0x17232a){var _0x6bc253=0x0;if(_0x17232a){if(_0x17232a['countbusyretry']+_0x17232a['countcongestionretry']+_0x17232a[_0x1011('0x1e')]+_0x17232a['countnosuchnumberretry']+_0x17232a['countdropretry']+_0x17232a[_0x1011('0x1f')]+_0x17232a['countmachineretry']+_0x17232a[_0x1011('0x20')]<_0x53c81a[_0x1011('0x21')][_0x1011('0x22')])_0x6bc253=0x1;_0x21bb4e({'additional':_0x6bc253});}else{return db[_0x1011('0x1a')][_0x1011('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x16740b['id']},'order':[[_0x1011('0x1c'),_0x1011('0x1d')]]})['then'](function(_0xa1eb3c){var _0x2da071=0x0;if(_0xa1eb3c){if(_0xa1eb3c[_0x1011('0x23')]+_0xa1eb3c['countcongestionretry']+_0xa1eb3c[_0x1011('0x1e')]+_0xa1eb3c[_0x1011('0x24')]+_0xa1eb3c[_0x1011('0x25')]+_0xa1eb3c[_0x1011('0x1f')]+_0xa1eb3c[_0x1011('0x26')]+_0xa1eb3c[_0x1011('0x20')]<_0x53c81a[_0x1011('0x21')][_0x1011('0x22')])_0x2da071=0x1;_0x21bb4e({'additional':_0x2da071});}else{_0x21bb4e({'additional':0x0});}})[_0x1011('0x12')](function(_0x4bb66f){logger[_0x1011('0xe')](_0x1011('0x13'),_0x4bb66f[_0x1011('0xf')]);_0x3db612(_0x276c0e[_0x1011('0xe')](0x1f4,_0x4bb66f[_0x1011('0xf')]));});}})['catch'](function(_0x57c7ea){logger[_0x1011('0xe')](_0x1011('0x13'),_0x57c7ea[_0x1011('0xf')]);_0x3db612(_0x276c0e[_0x1011('0xe')](0x1f4,_0x57c7ea[_0x1011('0xf')]));});}else _0x21bb4e({'additional':0x0});});});};exports[_0x1011('0x27')]=function(_0x537350){var _0x10c9ba=this;return new Promise(function(_0x51584c,_0x6f4e2d){return db[_0x1011('0x14')][_0x1011('0x1b')]({'raw':!![],'where':{'ContactId':_0x537350[_0x1011('0x15')]['ContactId'],'ListId':_0x537350[_0x1011('0x15')][_0x1011('0x28')],'VoiceQueueId':_0x537350['body']['VoiceQueueId']===undefined?null:_0x537350['body']['VoiceQueueId'],'CampaignId':_0x537350[_0x1011('0x15')]['CampaignId']===undefined?null:_0x537350[_0x1011('0x15')]['CampaignId']}})[_0x1011('0x19')](function(_0x2cd447){if(_0x2cd447!=null){return db[_0x1011('0x1a')][_0x1011('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x2cd447['id'],'OrderBy':{'$gte':_0x2cd447[_0x1011('0x1c')]}},'order':[[_0x1011('0x1c'),_0x1011('0x1d')]]})['then'](function(_0x11526a){if(_0x11526a)return activateAdditionalPhone(_0x2cd447,_0x537350[_0x1011('0x15')],_0x11526a,_0x537350[_0x1011('0x29')],_0x537350[_0x1011('0x2a')])[_0x1011('0x19')](function(_0x45933e){_0x51584c(_0x45933e);});else{return db[_0x1011('0x1a')][_0x1011('0x1b')]({'raw':!![],'where':{'CmHopperId':_0x2cd447['id']},'order':[['OrderBy','ASC']]})[_0x1011('0x19')](function(_0x34a77b){if(_0x34a77b)return activateAdditionalPhone(_0x2cd447,_0x537350['body'],_0x34a77b,_0x537350[_0x1011('0x29')],_0x537350['waitTime'])[_0x1011('0x19')](function(_0x1e1dc4){_0x51584c(_0x1e1dc4);});else{_0x51584c({'id':_0x2cd447['id'],'phone':''});}})[_0x1011('0x12')](function(_0x51351e){logger[_0x1011('0xe')]('VerifyAdditionalPhones',_0x51351e['message']);_0x6f4e2d(_0x10c9ba[_0x1011('0xe')](0x1f4,_0x51351e[_0x1011('0xf')]));});}})[_0x1011('0x12')](function(_0x2c8573){logger[_0x1011('0xe')]('VerifyAdditionalPhones',_0x2c8573[_0x1011('0xf')]);_0x6f4e2d(_0x10c9ba[_0x1011('0xe')](0x1f4,_0x2c8573['message']));});}else _0x51584c(0x1);});});};function activateAdditionalPhone(_0x5b51fd,_0x5f2ea6,_0x52a7cf,_0x3ced1c,_0x4e0c26){return new Promise(function(_0x2dcf94,_0x287028){var _0x4b414f;if(_[_0x1011('0x2b')](_0x52a7cf[_0x1011('0x2c')])){_0x52a7cf[_0x1011('0x2c')]=moment();}if(moment()>moment(_0x52a7cf['scheduledat'])){_0x4b414f=moment()[_0x1011('0x2d')](_0x4e0c26||0x3,_0x1011('0x2e'));}else{if(_0x52a7cf[_0x1011('0x1c')]==0x0){_0x4b414f=moment(_0x52a7cf[_0x1011('0x2c')]);}else{_0x4b414f=moment()[_0x1011('0x2d')](_0x4e0c26||0x3,_0x1011('0x2e'));}}if(_[_0x1011('0x2b')](_0x4b414f)){_0x4b414f=moment()[_0x1011('0x2d')](_0x4e0c26||0x3,_0x1011('0x2e'));}var _0x10edf4={'phone':_0x5b51fd[_0x1011('0x2f')],'active':0x0,'OrderBy':_[_0x1011('0x2b')](_0x5b51fd[_0x1011('0x1c')])?0x0:_0x5b51fd[_0x1011('0x1c')],'scheduledat':moment()[_0x1011('0x2d')](_0x3ced1c||0x1,_0x1011('0x2e')),'countbusyretry':_0x5f2ea6[_0x1011('0x23')],'countcongestionretry':_0x5f2ea6[_0x1011('0x30')],'countnoanswerretry':_0x5f2ea6['countnoanswerretry'],'countnosuchnumberretry':_0x5f2ea6[_0x1011('0x24')],'countdropretry':_0x5f2ea6[_0x1011('0x25')],'countabandonedretry':_0x5f2ea6[_0x1011('0x1f')],'countmachineretry':_0x5f2ea6['countmachineretry'],'countagentrejectretry':_0x5f2ea6[_0x1011('0x20')],'createdAt':_0x5f2ea6[_0x1011('0x31')],'updatedAt':_0x5f2ea6[_0x1011('0x32')]};var _0x1214c8={'CmHopperId':_0x5b51fd['id'],'phone':_0x52a7cf[_0x1011('0x2f')],'active':0x0,'OrderBy':_[_0x1011('0x2b')](_0x52a7cf[_0x1011('0x1c')])?0x0:_0x52a7cf[_0x1011('0x1c')],'scheduledat':_0x4b414f,'countbusyretry':_0x52a7cf['countbusyretry'],'countcongestionretry':_0x52a7cf[_0x1011('0x30')],'countnoanswerretry':_0x52a7cf[_0x1011('0x1e')],'countnosuchnumberretry':_0x52a7cf[_0x1011('0x24')],'countdropretry':_0x52a7cf[_0x1011('0x25')],'countabandonedretry':_0x52a7cf[_0x1011('0x1f')],'countmachineretry':_0x52a7cf['countmachineretry'],'countagentrejectretry':_0x52a7cf[_0x1011('0x20')],'createdAt':_0x52a7cf[_0x1011('0x31')],'updatedAt':_0x52a7cf[_0x1011('0x32')]};return db['sequelize'][_0x1011('0x33')](function(_0x53eb3a){return db[_0x1011('0x1a')][_0x1011('0x34')](_0x10edf4,{'where':{'id':_0x52a7cf['id']}},{'transaction':_0x53eb3a})[_0x1011('0x19')](function(){return db[_0x1011('0x14')][_0x1011('0x34')](_0x1214c8,{'where':{'id':_0x5b51fd['id']}},{'transaction':_0x53eb3a});});})[_0x1011('0x19')](function(_0x1d53ef){_0x2dcf94({'id':_0x5b51fd['id'],'phone':_0x52a7cf['phone']});})['catch'](function(_0x3c396c){logger[_0x1011('0xe')](_0x1011('0x35'),_0x3c396c['message']);_0x287028({'error':_0x3c396c[_0x1011('0xf')]});});});}exports[_0x1011('0x36')]=function(_0x3c6e97){var _0x4acbc6=this;return new Promise(function(_0x3df0a2,_0x196eb5){return db[_0x1011('0x14')][_0x1011('0x34')](_0x3c6e97[_0x1011('0x15')][_0x1011('0x37')],{'where':{'id':_0x3c6e97[_0x1011('0x15')]['id']}})[_0x1011('0x19')](function(_0x56459d){_0x3df0a2(_0x56459d);})[_0x1011('0x12')](function(_0x2c51cb){logger['error']('IncrementPreviewCounters',_0x2c51cb[_0x1011('0xf')]);_0x196eb5(_0x4acbc6['error'](0x1f4,_0x2c51cb[_0x1011('0xf')]));});});};