Built motion from commit 64440dd5.|2.6.29
[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 _0x828c=['CampaignId','CmHopperAdditionalPhone','findOne','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','entity','dialGlobalMaxRetry','countabandonedretry','countagentrejectretry','VerifyAdditionalPhones','catch','duration','waitTime','scheduledat','add','minutes','isNil','updatedAt','createdAt','sequelize','update','phone','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','CmHopper','body','ContactId','ListId','VoiceQueueId'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x828c,0x17b));var _0xc828=function(_0x2631f6,_0x552ce5){_0x2631f6=_0x2631f6-0x0;var _0x45917c=_0x828c[_0x2631f6];return _0x45917c;};'use strict';var _=require(_0xc828('0x0'));var util=require(_0xc828('0x1'));var moment=require(_0xc828('0x2'));var BPromise=require(_0xc828('0x3'));var rs=require(_0xc828('0x4'));var fs=require('fs');var Redis=require(_0xc828('0x5'));var db=require(_0xc828('0x6'))['db'];var utils=require(_0xc828('0x7'));var logger=require(_0xc828('0x8'))(_0xc828('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xc828('0xa')][_0xc828('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x55aa9d,_0x16d648,_0x454f43){return new BPromise(function(_0x227851,_0x472246){return client['request'](_0x55aa9d,_0x454f43)[_0xc828('0xc')](function(_0x125528){logger[_0xc828('0xd')](_0xc828('0xe'),_0x16d648,_0xc828('0xf'));logger[_0xc828('0x10')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x16d648,_0xc828('0xf'),JSON[_0xc828('0x11')](_0x125528));if(_0x125528['error']){if(_0x125528[_0xc828('0x12')][_0xc828('0x13')]===0x1f4){logger['error'](_0xc828('0xe'),_0x16d648,_0x125528[_0xc828('0x12')]['message']);return _0x472246(_0x125528[_0xc828('0x12')]['message']);}logger[_0xc828('0x12')](_0xc828('0xe'),_0x16d648,_0x125528[_0xc828('0x12')][_0xc828('0x14')]);return _0x227851(_0x125528[_0xc828('0x12')][_0xc828('0x14')]);}else{logger[_0xc828('0xd')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x16d648,_0xc828('0xf'));_0x227851(_0x125528[_0xc828('0x15')]['message']);}})['catch'](function(_0x407ccf){logger[_0xc828('0x12')](_0xc828('0xe'),_0x16d648,_0x407ccf);_0x472246(_0x407ccf);});});}exports['VerifyAdditionalPhones']=function(_0x3f2ee1){var _0x39dc17=this;return new Promise(function(_0x22f027,_0x1294f3){return db[_0xc828('0x16')]['findOne']({'raw':!![],'where':{'ContactId':_0x3f2ee1[_0xc828('0x17')][_0xc828('0x18')],'ListId':_0x3f2ee1[_0xc828('0x17')][_0xc828('0x19')],'VoiceQueueId':_0x3f2ee1[_0xc828('0x17')][_0xc828('0x1a')]===undefined?null:_0x3f2ee1[_0xc828('0x17')][_0xc828('0x1a')],'CampaignId':_0x3f2ee1[_0xc828('0x17')][_0xc828('0x1b')]===undefined?null:_0x3f2ee1[_0xc828('0x17')][_0xc828('0x1b')]}})['then'](function(_0x432a18){if(_0x432a18!=null){return db[_0xc828('0x1c')][_0xc828('0x1d')]({'raw':!![],'where':{'CmHopperId':_0x432a18['id'],'OrderBy':{'$gt':_0x432a18[_0xc828('0x1e')]}},'order':[['OrderBy',_0xc828('0x1f')]]})['then'](function(_0x245f7b){var _0x51c64b=0x0;if(_0x245f7b){if(_0x245f7b[_0xc828('0x20')]+_0x245f7b[_0xc828('0x21')]+_0x245f7b[_0xc828('0x22')]+_0x245f7b[_0xc828('0x23')]+_0x245f7b[_0xc828('0x24')]+_0x245f7b['countabandonedretry']+_0x245f7b[_0xc828('0x25')]+_0x245f7b['countagentrejectretry']<_0x3f2ee1[_0xc828('0x26')][_0xc828('0x27')])_0x51c64b=0x1;_0x22f027({'additional':_0x51c64b});}else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x432a18['id']},'order':[['OrderBy','ASC']]})['then'](function(_0x375526){var _0x35f3dd=0x0;if(_0x375526){if(_0x375526[_0xc828('0x20')]+_0x375526['countcongestionretry']+_0x375526[_0xc828('0x22')]+_0x375526['countnosuchnumberretry']+_0x375526['countdropretry']+_0x375526[_0xc828('0x28')]+_0x375526[_0xc828('0x25')]+_0x375526[_0xc828('0x29')]<_0x3f2ee1['entity'][_0xc828('0x27')])_0x35f3dd=0x1;_0x22f027({'additional':_0x35f3dd});}else{_0x22f027({'additional':0x0});}})['catch'](function(_0x5ade94){logger['error'](_0xc828('0x2a'),_0x5ade94[_0xc828('0x14')]);_0x1294f3(_0x39dc17[_0xc828('0x12')](0x1f4,_0x5ade94[_0xc828('0x14')]));});}})[_0xc828('0x2b')](function(_0x4cf0d7){logger[_0xc828('0x12')](_0xc828('0x2a'),_0x4cf0d7[_0xc828('0x14')]);_0x1294f3(_0x39dc17[_0xc828('0x12')](0x1f4,_0x4cf0d7['message']));});}else _0x22f027({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x5de1f8){var _0x5bcd9c=this;return new Promise(function(_0x24c468,_0x252e02){return db[_0xc828('0x16')][_0xc828('0x1d')]({'raw':!![],'where':{'ContactId':_0x5de1f8[_0xc828('0x17')][_0xc828('0x18')],'ListId':_0x5de1f8[_0xc828('0x17')][_0xc828('0x19')],'VoiceQueueId':_0x5de1f8[_0xc828('0x17')][_0xc828('0x1a')]===undefined?null:_0x5de1f8[_0xc828('0x17')][_0xc828('0x1a')],'CampaignId':_0x5de1f8[_0xc828('0x17')][_0xc828('0x1b')]===undefined?null:_0x5de1f8[_0xc828('0x17')][_0xc828('0x1b')]}})[_0xc828('0xc')](function(_0xeab96d){if(_0xeab96d!=null){return db['CmHopperAdditionalPhone'][_0xc828('0x1d')]({'raw':!![],'where':{'CmHopperId':_0xeab96d['id'],'OrderBy':{'$gte':_0xeab96d[_0xc828('0x1e')]}},'order':[['OrderBy','ASC']]})['then'](function(_0x55b040){if(_0x55b040)return activateAdditionalPhone(_0xeab96d,_0x5de1f8[_0xc828('0x17')],_0x55b040,_0x5de1f8[_0xc828('0x2c')],_0x5de1f8['waitTime'])[_0xc828('0xc')](function(_0x571c05){_0x24c468(_0x571c05);});else{return db[_0xc828('0x1c')]['findOne']({'raw':!![],'where':{'CmHopperId':_0xeab96d['id']},'order':[['OrderBy','ASC']]})[_0xc828('0xc')](function(_0x579f3e){if(_0x579f3e)return activateAdditionalPhone(_0xeab96d,_0x5de1f8['body'],_0x579f3e,_0x5de1f8[_0xc828('0x2c')],_0x5de1f8[_0xc828('0x2d')])[_0xc828('0xc')](function(_0x150233){_0x24c468(_0x150233);});else{_0x24c468({'id':_0xeab96d['id'],'phone':''});}})['catch'](function(_0xe22511){logger[_0xc828('0x12')]('VerifyAdditionalPhones',_0xe22511['message']);_0x252e02(_0x5bcd9c[_0xc828('0x12')](0x1f4,_0xe22511[_0xc828('0x14')]));});}})['catch'](function(_0x2e3275){logger[_0xc828('0x12')](_0xc828('0x2a'),_0x2e3275[_0xc828('0x14')]);_0x252e02(_0x5bcd9c['error'](0x1f4,_0x2e3275[_0xc828('0x14')]));});}else _0x24c468(0x1);});});};function activateAdditionalPhone(_0x54d5d4,_0x276f21,_0x1d5c12,_0x4a6471,_0x5e0644){return new Promise(function(_0x234f9f,_0x1ffd60){var _0x4978af;if(_['isNil'](_0x1d5c12[_0xc828('0x2e')])){_0x1d5c12[_0xc828('0x2e')]=moment();}if(moment()>moment(_0x1d5c12[_0xc828('0x2e')])){_0x4978af=moment()[_0xc828('0x2f')](_0x5e0644||0x3,_0xc828('0x30'));}else{if(_0x1d5c12[_0xc828('0x1e')]==0x0){_0x4978af=moment(_0x1d5c12['scheduledat']);}else{_0x4978af=moment()[_0xc828('0x2f')](_0x5e0644||0x3,_0xc828('0x30'));}}if(_['isNil'](_0x4978af)){_0x4978af=moment()[_0xc828('0x2f')](_0x5e0644||0x3,'minutes');}var _0x1c04b4={'phone':_0x54d5d4['phone'],'active':0x0,'OrderBy':_[_0xc828('0x31')](_0x54d5d4[_0xc828('0x1e')])?0x0:_0x54d5d4['OrderBy'],'scheduledat':moment()[_0xc828('0x2f')](_0x4a6471||0x1,_0xc828('0x30')),'countbusyretry':_0x276f21['countbusyretry'],'countcongestionretry':_0x276f21[_0xc828('0x21')],'countnoanswerretry':_0x276f21[_0xc828('0x22')],'countnosuchnumberretry':_0x276f21[_0xc828('0x23')],'countdropretry':_0x276f21[_0xc828('0x24')],'countabandonedretry':_0x276f21[_0xc828('0x28')],'countmachineretry':_0x276f21[_0xc828('0x25')],'countagentrejectretry':_0x276f21[_0xc828('0x29')],'createdAt':_0x276f21['createdAt'],'updatedAt':_0x276f21[_0xc828('0x32')]};var _0x19373a={'CmHopperId':_0x54d5d4['id'],'phone':_0x1d5c12['phone'],'active':0x0,'OrderBy':_[_0xc828('0x31')](_0x1d5c12[_0xc828('0x1e')])?0x0:_0x1d5c12[_0xc828('0x1e')],'scheduledat':_0x4978af,'countbusyretry':_0x1d5c12['countbusyretry'],'countcongestionretry':_0x1d5c12['countcongestionretry'],'countnoanswerretry':_0x1d5c12['countnoanswerretry'],'countnosuchnumberretry':_0x1d5c12['countnosuchnumberretry'],'countdropretry':_0x1d5c12[_0xc828('0x24')],'countabandonedretry':_0x1d5c12['countabandonedretry'],'countmachineretry':_0x1d5c12['countmachineretry'],'countagentrejectretry':_0x1d5c12['countagentrejectretry'],'createdAt':_0x1d5c12[_0xc828('0x33')],'updatedAt':_0x1d5c12[_0xc828('0x32')]};return db[_0xc828('0x34')]['transaction'](function(_0x307189){return db[_0xc828('0x1c')][_0xc828('0x35')](_0x1c04b4,{'where':{'id':_0x1d5c12['id']}},{'transaction':_0x307189})[_0xc828('0xc')](function(){return db[_0xc828('0x16')][_0xc828('0x35')](_0x19373a,{'where':{'id':_0x54d5d4['id']}},{'transaction':_0x307189});});})[_0xc828('0xc')](function(_0x1dfb92){_0x234f9f({'id':_0x54d5d4['id'],'phone':_0x1d5c12[_0xc828('0x36')]});})[_0xc828('0x2b')](function(_0x120892){logger[_0xc828('0x12')](_0xc828('0x37'),_0x120892[_0xc828('0x14')]);_0x1ffd60({'error':_0x120892[_0xc828('0x14')]});});});}exports[_0xc828('0x38')]=function(_0xbfa423){var _0x5268f1=this;return new Promise(function(_0x2bace3,_0x365e4a){return db['CmHopper'][_0xc828('0x35')](_0xbfa423[_0xc828('0x17')][_0xc828('0x39')],{'where':{'id':_0xbfa423['body']['id']}})['then'](function(_0x2ac47d){_0x2bace3(_0x2ac47d);})[_0xc828('0x2b')](function(_0x43b381){logger[_0xc828('0x12')](_0xc828('0x38'),_0x43b381[_0xc828('0x14')]);_0x365e4a(_0x5268f1[_0xc828('0x12')](0x1f4,_0x43b381[_0xc828('0x14')]));});});};