7dd8cd28aa26080fc3cd8e1ed42366156ef03524
[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 _0x0cf4=['message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','VoiceQueueId','CampaignId','OrderBy','ASC','countbusyretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','countnoanswerretry','countabandonedretry','SwapAdditionalPhones','ListId','waitTime','duration','isNil','scheduledat','add','minutes','phone','countcongestionretry','createdAt','updatedAt','sequelize','transaction','update','IncrementPreviewCounters','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x124157,_0x13d8f6){var _0x475783=function(_0x997985){while(--_0x997985){_0x124157['push'](_0x124157['shift']());}};_0x475783(++_0x13d8f6);}(_0x0cf4,0x142));var _0x40cf=function(_0x411289,_0x36dbc8){_0x411289=_0x411289-0x0;var _0x5e72ec=_0x0cf4[_0x411289];return _0x5e72ec;};'use strict';var _=require(_0x40cf('0x0'));var util=require(_0x40cf('0x1'));var moment=require(_0x40cf('0x2'));var BPromise=require(_0x40cf('0x3'));var rs=require(_0x40cf('0x4'));var fs=require('fs');var Redis=require(_0x40cf('0x5'));var db=require(_0x40cf('0x6'))['db'];var utils=require(_0x40cf('0x7'));var logger=require(_0x40cf('0x8'))(_0x40cf('0x9'));var config=require(_0x40cf('0xa'));var jayson=require(_0x40cf('0xb'));var client=jayson[_0x40cf('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x37a34a,_0x30703e,_0x2852f7){return new BPromise(function(_0x2c9952,_0xe58832){return client[_0x40cf('0xd')](_0x37a34a,_0x2852f7)[_0x40cf('0xe')](function(_0x3fc1d){logger[_0x40cf('0xf')](_0x40cf('0x10'),_0x30703e,_0x40cf('0x11'));logger['debug']('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x30703e,'request\x20sent',JSON['stringify'](_0x3fc1d));if(_0x3fc1d[_0x40cf('0x12')]){if(_0x3fc1d['error'][_0x40cf('0x13')]===0x1f4){logger[_0x40cf('0x12')](_0x40cf('0x10'),_0x30703e,_0x3fc1d[_0x40cf('0x12')][_0x40cf('0x14')]);return _0xe58832(_0x3fc1d['error'][_0x40cf('0x14')]);}logger[_0x40cf('0x12')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x30703e,_0x3fc1d[_0x40cf('0x12')]['message']);return _0x2c9952(_0x3fc1d[_0x40cf('0x12')][_0x40cf('0x14')]);}else{logger[_0x40cf('0xf')](_0x40cf('0x10'),_0x30703e,_0x40cf('0x11'));_0x2c9952(_0x3fc1d[_0x40cf('0x15')][_0x40cf('0x14')]);}})[_0x40cf('0x16')](function(_0x119e95){logger[_0x40cf('0x12')](_0x40cf('0x10'),_0x30703e,_0x119e95);_0xe58832(_0x119e95);});});}exports[_0x40cf('0x17')]=function(_0x2553ae){var _0x4d096c=this;return new Promise(function(_0x20061b,_0x2fd337){return db[_0x40cf('0x18')][_0x40cf('0x19')]({'raw':!![],'where':{'ContactId':_0x2553ae[_0x40cf('0x1a')]['ContactId'],'ListId':_0x2553ae['body']['ListId'],'VoiceQueueId':_0x2553ae['body']['VoiceQueueId']===undefined?null:_0x2553ae[_0x40cf('0x1a')][_0x40cf('0x1b')],'CampaignId':_0x2553ae[_0x40cf('0x1a')][_0x40cf('0x1c')]===undefined?null:_0x2553ae[_0x40cf('0x1a')][_0x40cf('0x1c')]}})[_0x40cf('0xe')](function(_0x4fd6dc){if(_0x4fd6dc!=null){return db['CmHopperAdditionalPhone'][_0x40cf('0x19')]({'raw':!![],'where':{'CmHopperId':_0x4fd6dc['id'],'OrderBy':{'$gt':_0x4fd6dc['OrderBy']}},'order':[[_0x40cf('0x1d'),_0x40cf('0x1e')]]})['then'](function(_0x5e8809){var _0x50a67c=0x0;if(_0x5e8809){if(_0x5e8809[_0x40cf('0x1f')]+_0x5e8809['countcongestionretry']+_0x5e8809['countnoanswerretry']+_0x5e8809[_0x40cf('0x20')]+_0x5e8809[_0x40cf('0x21')]+_0x5e8809['countabandonedretry']+_0x5e8809[_0x40cf('0x22')]+_0x5e8809[_0x40cf('0x23')]<_0x2553ae[_0x40cf('0x24')][_0x40cf('0x25')])_0x50a67c=0x1;_0x20061b({'additional':_0x50a67c});}else{return db[_0x40cf('0x26')][_0x40cf('0x19')]({'raw':!![],'where':{'CmHopperId':_0x4fd6dc['id']},'order':[['OrderBy',_0x40cf('0x1e')]]})[_0x40cf('0xe')](function(_0x4e1449){var _0x4692da=0x0;if(_0x4e1449){if(_0x4e1449[_0x40cf('0x1f')]+_0x4e1449['countcongestionretry']+_0x4e1449[_0x40cf('0x27')]+_0x4e1449[_0x40cf('0x20')]+_0x4e1449['countdropretry']+_0x4e1449[_0x40cf('0x28')]+_0x4e1449[_0x40cf('0x22')]+_0x4e1449[_0x40cf('0x23')]<_0x2553ae[_0x40cf('0x24')]['dialGlobalMaxRetry'])_0x4692da=0x1;_0x20061b({'additional':_0x4692da});}else{_0x20061b({'additional':0x0});}})['catch'](function(_0x384943){logger[_0x40cf('0x12')](_0x40cf('0x17'),_0x384943['message']);_0x2fd337(_0x4d096c[_0x40cf('0x12')](0x1f4,_0x384943[_0x40cf('0x14')]));});}})[_0x40cf('0x16')](function(_0x40cff7){logger['error'](_0x40cf('0x17'),_0x40cff7[_0x40cf('0x14')]);_0x2fd337(_0x4d096c[_0x40cf('0x12')](0x1f4,_0x40cff7[_0x40cf('0x14')]));});}else _0x20061b({'additional':0x0});});});};exports[_0x40cf('0x29')]=function(_0x5a5f63){var _0x3456a0=this;return new Promise(function(_0x4a7cf7,_0x3c0747){return db[_0x40cf('0x18')][_0x40cf('0x19')]({'raw':!![],'where':{'ContactId':_0x5a5f63['body']['ContactId'],'ListId':_0x5a5f63['body'][_0x40cf('0x2a')],'VoiceQueueId':_0x5a5f63['body'][_0x40cf('0x1b')]===undefined?null:_0x5a5f63[_0x40cf('0x1a')]['VoiceQueueId'],'CampaignId':_0x5a5f63[_0x40cf('0x1a')]['CampaignId']===undefined?null:_0x5a5f63['body'][_0x40cf('0x1c')]}})['then'](function(_0x550db2){if(_0x550db2!=null){return db[_0x40cf('0x26')][_0x40cf('0x19')]({'raw':!![],'where':{'CmHopperId':_0x550db2['id'],'OrderBy':{'$gte':_0x550db2[_0x40cf('0x1d')]}},'order':[['OrderBy','ASC']]})['then'](function(_0xd03f48){if(_0xd03f48)return activateAdditionalPhone(_0x550db2,_0x5a5f63[_0x40cf('0x1a')],_0xd03f48,_0x5a5f63['duration'],_0x5a5f63[_0x40cf('0x2b')])['then'](function(_0x9cdaec){_0x4a7cf7(_0x9cdaec);});else{return db[_0x40cf('0x26')][_0x40cf('0x19')]({'raw':!![],'where':{'CmHopperId':_0x550db2['id']},'order':[[_0x40cf('0x1d'),_0x40cf('0x1e')]]})['then'](function(_0x375969){if(_0x375969)return activateAdditionalPhone(_0x550db2,_0x5a5f63[_0x40cf('0x1a')],_0x375969,_0x5a5f63[_0x40cf('0x2c')],_0x5a5f63[_0x40cf('0x2b')])['then'](function(_0x505fda){_0x4a7cf7(_0x505fda);});else{_0x4a7cf7({'id':_0x550db2['id'],'phone':''});}})[_0x40cf('0x16')](function(_0x4ae74c){logger['error'](_0x40cf('0x17'),_0x4ae74c['message']);_0x3c0747(_0x3456a0[_0x40cf('0x12')](0x1f4,_0x4ae74c[_0x40cf('0x14')]));});}})[_0x40cf('0x16')](function(_0x3c8411){logger['error'](_0x40cf('0x17'),_0x3c8411[_0x40cf('0x14')]);_0x3c0747(_0x3456a0[_0x40cf('0x12')](0x1f4,_0x3c8411[_0x40cf('0x14')]));});}else _0x4a7cf7(0x1);});});};function activateAdditionalPhone(_0x4c4ca6,_0x3c76dc,_0x390022,_0x234305,_0x43e402){return new Promise(function(_0x341d5c,_0xd4116a){var _0x1a3a6d;if(_[_0x40cf('0x2d')](_0x390022[_0x40cf('0x2e')])){_0x390022[_0x40cf('0x2e')]=moment();}if(moment()>moment(_0x390022['scheduledat'])){_0x1a3a6d=moment()[_0x40cf('0x2f')](_0x43e402||0x3,_0x40cf('0x30'));}else{if(_0x390022[_0x40cf('0x1d')]==0x0){_0x1a3a6d=moment(_0x390022['scheduledat']);}else{_0x1a3a6d=moment()[_0x40cf('0x2f')](_0x43e402||0x3,_0x40cf('0x30'));}}if(_[_0x40cf('0x2d')](_0x1a3a6d)){_0x1a3a6d=moment()[_0x40cf('0x2f')](_0x43e402||0x3,'minutes');}var _0x10fdc2={'phone':_0x4c4ca6[_0x40cf('0x31')],'active':0x0,'OrderBy':_[_0x40cf('0x2d')](_0x4c4ca6['OrderBy'])?0x0:_0x4c4ca6[_0x40cf('0x1d')],'scheduledat':moment()['add'](_0x234305||0x1,_0x40cf('0x30')),'countbusyretry':_0x3c76dc[_0x40cf('0x1f')],'countcongestionretry':_0x3c76dc[_0x40cf('0x32')],'countnoanswerretry':_0x3c76dc['countnoanswerretry'],'countnosuchnumberretry':_0x3c76dc[_0x40cf('0x20')],'countdropretry':_0x3c76dc[_0x40cf('0x21')],'countabandonedretry':_0x3c76dc['countabandonedretry'],'countmachineretry':_0x3c76dc[_0x40cf('0x22')],'countagentrejectretry':_0x3c76dc[_0x40cf('0x23')],'createdAt':_0x3c76dc[_0x40cf('0x33')],'updatedAt':_0x3c76dc[_0x40cf('0x34')]};var _0x1a115e={'CmHopperId':_0x4c4ca6['id'],'phone':_0x390022[_0x40cf('0x31')],'active':0x0,'OrderBy':_['isNil'](_0x390022[_0x40cf('0x1d')])?0x0:_0x390022[_0x40cf('0x1d')],'scheduledat':_0x1a3a6d,'countbusyretry':_0x390022[_0x40cf('0x1f')],'countcongestionretry':_0x390022['countcongestionretry'],'countnoanswerretry':_0x390022['countnoanswerretry'],'countnosuchnumberretry':_0x390022[_0x40cf('0x20')],'countdropretry':_0x390022[_0x40cf('0x21')],'countabandonedretry':_0x390022[_0x40cf('0x28')],'countmachineretry':_0x390022[_0x40cf('0x22')],'countagentrejectretry':_0x390022['countagentrejectretry'],'createdAt':_0x390022['createdAt'],'updatedAt':_0x390022[_0x40cf('0x34')]};return db[_0x40cf('0x35')][_0x40cf('0x36')](function(_0x542ad8){return db[_0x40cf('0x26')][_0x40cf('0x37')](_0x10fdc2,{'where':{'id':_0x390022['id']}},{'transaction':_0x542ad8})['then'](function(){return db[_0x40cf('0x18')][_0x40cf('0x37')](_0x1a115e,{'where':{'id':_0x4c4ca6['id']}},{'transaction':_0x542ad8});});})[_0x40cf('0xe')](function(_0x403e9b){_0x341d5c({'id':_0x4c4ca6['id'],'phone':_0x390022[_0x40cf('0x31')]});})['catch'](function(_0x27e1c2){logger[_0x40cf('0x12')]('activateAdditionalPhone',_0x27e1c2[_0x40cf('0x14')]);_0xd4116a({'error':_0x27e1c2['message']});});});}exports[_0x40cf('0x38')]=function(_0x5cc4f6){var _0x520210=this;return new Promise(function(_0x759f30,_0x15bd20){return db[_0x40cf('0x18')]['update'](_0x5cc4f6['body']['field'],{'where':{'id':_0x5cc4f6['body']['id']}})[_0x40cf('0xe')](function(_0xfb10a2){_0x759f30(_0xfb10a2);})[_0x40cf('0x16')](function(_0x449cba){logger[_0x40cf('0x12')](_0x40cf('0x38'),_0x449cba[_0x40cf('0x14')]);_0x15bd20(_0x520210[_0x40cf('0x12')](0x1f4,_0x449cba[_0x40cf('0x14')]));});});};