Built motion from commit a679711e.|2.6.15
[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 _0xad72=['countmachineretry','dialGlobalMaxRetry','countnosuchnumberretry','VerifyAdditionalPhones','CmHopper','CampaignId','waitTime','duration','isNil','scheduledat','add','minutes','phone','countnoanswerretry','countagentrejectretry','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','request','then','info','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','result','catch','findOne','body','ContactId','ListId','VoiceQueueId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countdropretry','countabandonedretry'];(function(_0x1b7e39,_0x3a94b5){var _0x5e9922=function(_0x18ea10){while(--_0x18ea10){_0x1b7e39['push'](_0x1b7e39['shift']());}};_0x5e9922(++_0x3a94b5);}(_0xad72,0x198));var _0x2ad7=function(_0xff99ea,_0x63915){_0xff99ea=_0xff99ea-0x0;var _0x47a615=_0xad72[_0xff99ea];return _0x47a615;};'use strict';var _=require(_0x2ad7('0x0'));var util=require(_0x2ad7('0x1'));var moment=require(_0x2ad7('0x2'));var BPromise=require('bluebird');var rs=require(_0x2ad7('0x3'));var fs=require('fs');var Redis=require(_0x2ad7('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2ad7('0x5'));var logger=require(_0x2ad7('0x6'))('rpc');var config=require(_0x2ad7('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x22f6ef,_0x104cf0,_0x8df5e0){return new BPromise(function(_0x228130,_0x408063){return client[_0x2ad7('0x8')](_0x22f6ef,_0x8df5e0)[_0x2ad7('0x9')](function(_0x58dad0){logger[_0x2ad7('0xa')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x104cf0,_0x2ad7('0xb'));logger[_0x2ad7('0xc')](_0x2ad7('0xd'),_0x104cf0,_0x2ad7('0xb'),JSON['stringify'](_0x58dad0));if(_0x58dad0[_0x2ad7('0xe')]){if(_0x58dad0['error'][_0x2ad7('0xf')]===0x1f4){logger[_0x2ad7('0xe')](_0x2ad7('0x10'),_0x104cf0,_0x58dad0[_0x2ad7('0xe')][_0x2ad7('0x11')]);return _0x408063(_0x58dad0[_0x2ad7('0xe')][_0x2ad7('0x11')]);}logger['error'](_0x2ad7('0x10'),_0x104cf0,_0x58dad0[_0x2ad7('0xe')][_0x2ad7('0x11')]);return _0x228130(_0x58dad0['error'][_0x2ad7('0x11')]);}else{logger['info'](_0x2ad7('0x10'),_0x104cf0,_0x2ad7('0xb'));_0x228130(_0x58dad0[_0x2ad7('0x12')]['message']);}})[_0x2ad7('0x13')](function(_0x5e3bb7){logger['error'](_0x2ad7('0x10'),_0x104cf0,_0x5e3bb7);_0x408063(_0x5e3bb7);});});}exports['VerifyAdditionalPhones']=function(_0x462919){var _0xb61f06=this;return new Promise(function(_0x3d4d10,_0x173a92){return db['CmHopper'][_0x2ad7('0x14')]({'raw':!![],'where':{'ContactId':_0x462919[_0x2ad7('0x15')][_0x2ad7('0x16')],'ListId':_0x462919[_0x2ad7('0x15')][_0x2ad7('0x17')],'VoiceQueueId':_0x462919['body'][_0x2ad7('0x18')]===undefined?null:_0x462919[_0x2ad7('0x15')][_0x2ad7('0x18')],'CampaignId':_0x462919[_0x2ad7('0x15')]['CampaignId']===undefined?null:_0x462919[_0x2ad7('0x15')]['CampaignId']}})[_0x2ad7('0x9')](function(_0x21321b){if(_0x21321b!=null){return db[_0x2ad7('0x19')][_0x2ad7('0x14')]({'raw':!![],'where':{'CmHopperId':_0x21321b['id'],'OrderBy':{'$gt':_0x21321b[_0x2ad7('0x1a')]}},'order':[[_0x2ad7('0x1a'),_0x2ad7('0x1b')]]})[_0x2ad7('0x9')](function(_0x1547a6){var _0x2147a=0x0;if(_0x1547a6){if(_0x1547a6[_0x2ad7('0x1c')]+_0x1547a6[_0x2ad7('0x1d')]+_0x1547a6['countnoanswerretry']+_0x1547a6['countnosuchnumberretry']+_0x1547a6[_0x2ad7('0x1e')]+_0x1547a6[_0x2ad7('0x1f')]+_0x1547a6[_0x2ad7('0x20')]+_0x1547a6['countagentrejectretry']<_0x462919['entity'][_0x2ad7('0x21')])_0x2147a=0x1;_0x3d4d10({'additional':_0x2147a});}else{return db[_0x2ad7('0x19')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x21321b['id']},'order':[[_0x2ad7('0x1a'),_0x2ad7('0x1b')]]})[_0x2ad7('0x9')](function(_0xc014c2){var _0x3fea5d=0x0;if(_0xc014c2){if(_0xc014c2[_0x2ad7('0x1c')]+_0xc014c2['countcongestionretry']+_0xc014c2['countnoanswerretry']+_0xc014c2[_0x2ad7('0x22')]+_0xc014c2['countdropretry']+_0xc014c2['countabandonedretry']+_0xc014c2[_0x2ad7('0x20')]+_0xc014c2['countagentrejectretry']<_0x462919['entity']['dialGlobalMaxRetry'])_0x3fea5d=0x1;_0x3d4d10({'additional':_0x3fea5d});}else{_0x3d4d10({'additional':0x0});}})[_0x2ad7('0x13')](function(_0x5ece61){logger[_0x2ad7('0xe')](_0x2ad7('0x23'),_0x5ece61['message']);_0x173a92(_0xb61f06['error'](0x1f4,_0x5ece61['message']));});}})[_0x2ad7('0x13')](function(_0x4857d9){logger[_0x2ad7('0xe')](_0x2ad7('0x23'),_0x4857d9[_0x2ad7('0x11')]);_0x173a92(_0xb61f06[_0x2ad7('0xe')](0x1f4,_0x4857d9[_0x2ad7('0x11')]));});}else _0x3d4d10({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x380109){var _0x2396d5=this;return new Promise(function(_0x521e05,_0x389721){return db[_0x2ad7('0x24')]['findOne']({'raw':!![],'where':{'ContactId':_0x380109[_0x2ad7('0x15')]['ContactId'],'ListId':_0x380109[_0x2ad7('0x15')]['ListId'],'VoiceQueueId':_0x380109['body'][_0x2ad7('0x18')]===undefined?null:_0x380109[_0x2ad7('0x15')][_0x2ad7('0x18')],'CampaignId':_0x380109[_0x2ad7('0x15')][_0x2ad7('0x25')]===undefined?null:_0x380109[_0x2ad7('0x15')][_0x2ad7('0x25')]}})[_0x2ad7('0x9')](function(_0x4dac1b){if(_0x4dac1b!=null){return db[_0x2ad7('0x19')][_0x2ad7('0x14')]({'raw':!![],'where':{'CmHopperId':_0x4dac1b['id'],'OrderBy':{'$gte':_0x4dac1b[_0x2ad7('0x1a')]}},'order':[[_0x2ad7('0x1a'),'ASC']]})['then'](function(_0x3be8c8){if(_0x3be8c8)return activateAdditionalPhone(_0x4dac1b,_0x380109[_0x2ad7('0x15')],_0x3be8c8,_0x380109['duration'],_0x380109[_0x2ad7('0x26')])[_0x2ad7('0x9')](function(_0x9ae3e1){_0x521e05(_0x9ae3e1);});else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x4dac1b['id']},'order':[[_0x2ad7('0x1a'),_0x2ad7('0x1b')]]})[_0x2ad7('0x9')](function(_0x5dad23){if(_0x5dad23)return activateAdditionalPhone(_0x4dac1b,_0x380109['body'],_0x5dad23,_0x380109[_0x2ad7('0x27')],_0x380109[_0x2ad7('0x26')])['then'](function(_0x1ffbd5){_0x521e05(_0x1ffbd5);});else{_0x521e05({'id':_0x4dac1b['id'],'phone':''});}})[_0x2ad7('0x13')](function(_0x1b7ef3){logger['error'](_0x2ad7('0x23'),_0x1b7ef3[_0x2ad7('0x11')]);_0x389721(_0x2396d5['error'](0x1f4,_0x1b7ef3[_0x2ad7('0x11')]));});}})[_0x2ad7('0x13')](function(_0x7d2196){logger['error'](_0x2ad7('0x23'),_0x7d2196[_0x2ad7('0x11')]);_0x389721(_0x2396d5[_0x2ad7('0xe')](0x1f4,_0x7d2196[_0x2ad7('0x11')]));});}else _0x521e05(0x1);});});};function activateAdditionalPhone(_0x23c4cb,_0x4e3392,_0x114eda,_0x3fffe1,_0x346b22){return new Promise(function(_0x4b6815,_0x17a31b){var _0x27d502;if(_[_0x2ad7('0x28')](_0x114eda[_0x2ad7('0x29')])){_0x114eda[_0x2ad7('0x29')]=moment();}if(moment()>moment(_0x114eda[_0x2ad7('0x29')])){_0x27d502=moment()[_0x2ad7('0x2a')](_0x346b22||0x3,_0x2ad7('0x2b'));}else{if(_0x114eda[_0x2ad7('0x1a')]==0x0){_0x27d502=moment(_0x114eda[_0x2ad7('0x29')]);}else{_0x27d502=moment()[_0x2ad7('0x2a')](_0x346b22||0x3,'minutes');}}if(_[_0x2ad7('0x28')](_0x27d502)){_0x27d502=moment()[_0x2ad7('0x2a')](_0x346b22||0x3,_0x2ad7('0x2b'));}var _0x27a3c7={'phone':_0x23c4cb[_0x2ad7('0x2c')],'active':0x0,'OrderBy':_[_0x2ad7('0x28')](_0x23c4cb[_0x2ad7('0x1a')])?0x0:_0x23c4cb[_0x2ad7('0x1a')],'scheduledat':moment()[_0x2ad7('0x2a')](_0x3fffe1||0x1,_0x2ad7('0x2b')),'countbusyretry':_0x4e3392[_0x2ad7('0x1c')],'countcongestionretry':_0x4e3392[_0x2ad7('0x1d')],'countnoanswerretry':_0x4e3392[_0x2ad7('0x2d')],'countnosuchnumberretry':_0x4e3392[_0x2ad7('0x22')],'countdropretry':_0x4e3392[_0x2ad7('0x1e')],'countabandonedretry':_0x4e3392[_0x2ad7('0x1f')],'countmachineretry':_0x4e3392[_0x2ad7('0x20')],'countagentrejectretry':_0x4e3392[_0x2ad7('0x2e')],'createdAt':_0x4e3392[_0x2ad7('0x2f')],'updatedAt':_0x4e3392[_0x2ad7('0x30')]};var _0x4e37af={'CmHopperId':_0x23c4cb['id'],'phone':_0x114eda[_0x2ad7('0x2c')],'active':0x0,'OrderBy':_[_0x2ad7('0x28')](_0x114eda[_0x2ad7('0x1a')])?0x0:_0x114eda[_0x2ad7('0x1a')],'scheduledat':_0x27d502,'countbusyretry':_0x114eda[_0x2ad7('0x1c')],'countcongestionretry':_0x114eda['countcongestionretry'],'countnoanswerretry':_0x114eda[_0x2ad7('0x2d')],'countnosuchnumberretry':_0x114eda[_0x2ad7('0x22')],'countdropretry':_0x114eda['countdropretry'],'countabandonedretry':_0x114eda[_0x2ad7('0x1f')],'countmachineretry':_0x114eda[_0x2ad7('0x20')],'countagentrejectretry':_0x114eda[_0x2ad7('0x2e')],'createdAt':_0x114eda[_0x2ad7('0x2f')],'updatedAt':_0x114eda[_0x2ad7('0x30')]};return db[_0x2ad7('0x31')][_0x2ad7('0x32')](function(_0x2f80e1){return db[_0x2ad7('0x19')][_0x2ad7('0x33')](_0x27a3c7,{'where':{'id':_0x114eda['id']}},{'transaction':_0x2f80e1})['then'](function(){return db[_0x2ad7('0x24')][_0x2ad7('0x33')](_0x4e37af,{'where':{'id':_0x23c4cb['id']}},{'transaction':_0x2f80e1});});})[_0x2ad7('0x9')](function(_0xf448f0){_0x4b6815({'id':_0x23c4cb['id'],'phone':_0x114eda[_0x2ad7('0x2c')]});})[_0x2ad7('0x13')](function(_0x36fc92){logger[_0x2ad7('0xe')](_0x2ad7('0x34'),_0x36fc92['message']);_0x17a31b({'error':_0x36fc92[_0x2ad7('0x11')]});});});}exports[_0x2ad7('0x35')]=function(_0x452839){var _0x351ca6=this;return new Promise(function(_0x238a40,_0x16f38c){return db['CmHopper'][_0x2ad7('0x33')](_0x452839['body'][_0x2ad7('0x36')],{'where':{'id':_0x452839[_0x2ad7('0x15')]['id']}})[_0x2ad7('0x9')](function(_0x40effd){_0x238a40(_0x40effd);})[_0x2ad7('0x13')](function(_0x2f8a2f){logger['error'](_0x2ad7('0x35'),_0x2f8a2f['message']);_0x16f38c(_0x351ca6['error'](0x1f4,_0x2f8a2f[_0x2ad7('0x11')]));});});};