Built motion from commit f25620e4.|2.6.30
[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 _0xd754=['countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','countnoanswerretry','countnosuchnumberretry','dialGlobalMaxRetry','VerifyAdditionalPhones','SwapAdditionalPhones','ASC','duration','waitTime','scheduledat','add','minutes','isNil','phone','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CmHopper','body','ContactId','ListId','VoiceQueueId','CampaignId','then','CmHopperAdditionalPhone','findOne','OrderBy','countbusyretry','countcongestionretry'];(function(_0x4fa166,_0x58b7fb){var _0x5dd974=function(_0x342886){while(--_0x342886){_0x4fa166['push'](_0x4fa166['shift']());}};_0x5dd974(++_0x58b7fb);}(_0xd754,0x1f1));var _0x4d75=function(_0x174ef5,_0x256e8e){_0x174ef5=_0x174ef5-0x0;var _0x1cc379=_0xd754[_0x174ef5];return _0x1cc379;};'use strict';var _=require(_0x4d75('0x0'));var util=require(_0x4d75('0x1'));var moment=require(_0x4d75('0x2'));var BPromise=require('bluebird');var rs=require(_0x4d75('0x3'));var fs=require('fs');var Redis=require(_0x4d75('0x4'));var db=require(_0x4d75('0x5'))['db'];var utils=require(_0x4d75('0x6'));var logger=require(_0x4d75('0x7'))(_0x4d75('0x8'));var config=require('../../config/environment');var jayson=require(_0x4d75('0x9'));var client=jayson[_0x4d75('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3d7556,_0x462f33,_0x522b0d){return new BPromise(function(_0x41be88,_0x4bd012){return client['request'](_0x3d7556,_0x522b0d)['then'](function(_0x32012b){logger[_0x4d75('0xb')](_0x4d75('0xc'),_0x462f33,'request\x20sent');logger[_0x4d75('0xd')](_0x4d75('0xe'),_0x462f33,_0x4d75('0xf'),JSON[_0x4d75('0x10')](_0x32012b));if(_0x32012b[_0x4d75('0x11')]){if(_0x32012b[_0x4d75('0x11')][_0x4d75('0x12')]===0x1f4){logger[_0x4d75('0x11')](_0x4d75('0xc'),_0x462f33,_0x32012b[_0x4d75('0x11')][_0x4d75('0x13')]);return _0x4bd012(_0x32012b[_0x4d75('0x11')]['message']);}logger[_0x4d75('0x11')](_0x4d75('0xc'),_0x462f33,_0x32012b[_0x4d75('0x11')][_0x4d75('0x13')]);return _0x41be88(_0x32012b[_0x4d75('0x11')][_0x4d75('0x13')]);}else{logger['info'](_0x4d75('0xc'),_0x462f33,_0x4d75('0xf'));_0x41be88(_0x32012b[_0x4d75('0x14')][_0x4d75('0x13')]);}})[_0x4d75('0x15')](function(_0x5c9086){logger[_0x4d75('0x11')](_0x4d75('0xc'),_0x462f33,_0x5c9086);_0x4bd012(_0x5c9086);});});}exports['VerifyAdditionalPhones']=function(_0x3bdc03){var _0x11f852=this;return new Promise(function(_0x405fec,_0x11ec85){return db[_0x4d75('0x16')]['findOne']({'raw':!![],'where':{'ContactId':_0x3bdc03[_0x4d75('0x17')][_0x4d75('0x18')],'ListId':_0x3bdc03[_0x4d75('0x17')][_0x4d75('0x19')],'VoiceQueueId':_0x3bdc03['body'][_0x4d75('0x1a')]===undefined?null:_0x3bdc03[_0x4d75('0x17')][_0x4d75('0x1a')],'CampaignId':_0x3bdc03['body'][_0x4d75('0x1b')]===undefined?null:_0x3bdc03['body'][_0x4d75('0x1b')]}})[_0x4d75('0x1c')](function(_0x49fe23){if(_0x49fe23!=null){return db[_0x4d75('0x1d')][_0x4d75('0x1e')]({'raw':!![],'where':{'CmHopperId':_0x49fe23['id'],'OrderBy':{'$gt':_0x49fe23[_0x4d75('0x1f')]}},'order':[[_0x4d75('0x1f'),'ASC']]})[_0x4d75('0x1c')](function(_0x4832bb){var _0x5ece23=0x0;if(_0x4832bb){if(_0x4832bb[_0x4d75('0x20')]+_0x4832bb[_0x4d75('0x21')]+_0x4832bb['countnoanswerretry']+_0x4832bb['countnosuchnumberretry']+_0x4832bb[_0x4d75('0x22')]+_0x4832bb[_0x4d75('0x23')]+_0x4832bb[_0x4d75('0x24')]+_0x4832bb[_0x4d75('0x25')]<_0x3bdc03[_0x4d75('0x26')]['dialGlobalMaxRetry'])_0x5ece23=0x1;_0x405fec({'additional':_0x5ece23});}else{return db['CmHopperAdditionalPhone'][_0x4d75('0x1e')]({'raw':!![],'where':{'CmHopperId':_0x49fe23['id']},'order':[[_0x4d75('0x1f'),'ASC']]})[_0x4d75('0x1c')](function(_0x51adb0){var _0x37d046=0x0;if(_0x51adb0){if(_0x51adb0[_0x4d75('0x20')]+_0x51adb0[_0x4d75('0x21')]+_0x51adb0[_0x4d75('0x27')]+_0x51adb0[_0x4d75('0x28')]+_0x51adb0[_0x4d75('0x22')]+_0x51adb0[_0x4d75('0x23')]+_0x51adb0[_0x4d75('0x24')]+_0x51adb0[_0x4d75('0x25')]<_0x3bdc03[_0x4d75('0x26')][_0x4d75('0x29')])_0x37d046=0x1;_0x405fec({'additional':_0x37d046});}else{_0x405fec({'additional':0x0});}})[_0x4d75('0x15')](function(_0x1e83de){logger[_0x4d75('0x11')](_0x4d75('0x2a'),_0x1e83de[_0x4d75('0x13')]);_0x11ec85(_0x11f852[_0x4d75('0x11')](0x1f4,_0x1e83de[_0x4d75('0x13')]));});}})[_0x4d75('0x15')](function(_0x1c0241){logger[_0x4d75('0x11')]('VerifyAdditionalPhones',_0x1c0241['message']);_0x11ec85(_0x11f852[_0x4d75('0x11')](0x1f4,_0x1c0241[_0x4d75('0x13')]));});}else _0x405fec({'additional':0x0});});});};exports[_0x4d75('0x2b')]=function(_0x5f20f7){var _0x23f8b7=this;return new Promise(function(_0x1941ef,_0x49d9e3){return db[_0x4d75('0x16')][_0x4d75('0x1e')]({'raw':!![],'where':{'ContactId':_0x5f20f7['body']['ContactId'],'ListId':_0x5f20f7['body'][_0x4d75('0x19')],'VoiceQueueId':_0x5f20f7[_0x4d75('0x17')][_0x4d75('0x1a')]===undefined?null:_0x5f20f7[_0x4d75('0x17')][_0x4d75('0x1a')],'CampaignId':_0x5f20f7[_0x4d75('0x17')][_0x4d75('0x1b')]===undefined?null:_0x5f20f7[_0x4d75('0x17')][_0x4d75('0x1b')]}})[_0x4d75('0x1c')](function(_0x1e51a1){if(_0x1e51a1!=null){return db[_0x4d75('0x1d')][_0x4d75('0x1e')]({'raw':!![],'where':{'CmHopperId':_0x1e51a1['id'],'OrderBy':{'$gte':_0x1e51a1[_0x4d75('0x1f')]}},'order':[['OrderBy',_0x4d75('0x2c')]]})[_0x4d75('0x1c')](function(_0x5e58b2){if(_0x5e58b2)return activateAdditionalPhone(_0x1e51a1,_0x5f20f7['body'],_0x5e58b2,_0x5f20f7[_0x4d75('0x2d')],_0x5f20f7[_0x4d75('0x2e')])[_0x4d75('0x1c')](function(_0x4cd33a){_0x1941ef(_0x4cd33a);});else{return db['CmHopperAdditionalPhone'][_0x4d75('0x1e')]({'raw':!![],'where':{'CmHopperId':_0x1e51a1['id']},'order':[[_0x4d75('0x1f'),'ASC']]})['then'](function(_0x48b3ab){if(_0x48b3ab)return activateAdditionalPhone(_0x1e51a1,_0x5f20f7[_0x4d75('0x17')],_0x48b3ab,_0x5f20f7['duration'],_0x5f20f7[_0x4d75('0x2e')])['then'](function(_0x553f9d){_0x1941ef(_0x553f9d);});else{_0x1941ef({'id':_0x1e51a1['id'],'phone':''});}})['catch'](function(_0x54de6d){logger[_0x4d75('0x11')](_0x4d75('0x2a'),_0x54de6d['message']);_0x49d9e3(_0x23f8b7[_0x4d75('0x11')](0x1f4,_0x54de6d[_0x4d75('0x13')]));});}})[_0x4d75('0x15')](function(_0x3c0d7e){logger[_0x4d75('0x11')](_0x4d75('0x2a'),_0x3c0d7e[_0x4d75('0x13')]);_0x49d9e3(_0x23f8b7[_0x4d75('0x11')](0x1f4,_0x3c0d7e[_0x4d75('0x13')]));});}else _0x1941ef(0x1);});});};function activateAdditionalPhone(_0x48559c,_0x4683a8,_0x4da5ea,_0x308605,_0x5f2fc5){return new Promise(function(_0x2f87d6,_0x4e9e30){var _0xa4d047;if(_['isNil'](_0x4da5ea[_0x4d75('0x2f')])){_0x4da5ea[_0x4d75('0x2f')]=moment();}if(moment()>moment(_0x4da5ea[_0x4d75('0x2f')])){_0xa4d047=moment()[_0x4d75('0x30')](_0x5f2fc5||0x3,_0x4d75('0x31'));}else{if(_0x4da5ea[_0x4d75('0x1f')]==0x0){_0xa4d047=moment(_0x4da5ea[_0x4d75('0x2f')]);}else{_0xa4d047=moment()[_0x4d75('0x30')](_0x5f2fc5||0x3,_0x4d75('0x31'));}}if(_[_0x4d75('0x32')](_0xa4d047)){_0xa4d047=moment()[_0x4d75('0x30')](_0x5f2fc5||0x3,'minutes');}var _0x271032={'phone':_0x48559c[_0x4d75('0x33')],'active':0x0,'OrderBy':_[_0x4d75('0x32')](_0x48559c[_0x4d75('0x1f')])?0x0:_0x48559c[_0x4d75('0x1f')],'scheduledat':moment()[_0x4d75('0x30')](_0x308605||0x1,_0x4d75('0x31')),'countbusyretry':_0x4683a8[_0x4d75('0x20')],'countcongestionretry':_0x4683a8[_0x4d75('0x21')],'countnoanswerretry':_0x4683a8[_0x4d75('0x27')],'countnosuchnumberretry':_0x4683a8['countnosuchnumberretry'],'countdropretry':_0x4683a8['countdropretry'],'countabandonedretry':_0x4683a8[_0x4d75('0x23')],'countmachineretry':_0x4683a8[_0x4d75('0x24')],'countagentrejectretry':_0x4683a8[_0x4d75('0x25')],'createdAt':_0x4683a8['createdAt'],'updatedAt':_0x4683a8[_0x4d75('0x34')]};var _0x3cd3ba={'CmHopperId':_0x48559c['id'],'phone':_0x4da5ea[_0x4d75('0x33')],'active':0x0,'OrderBy':_[_0x4d75('0x32')](_0x4da5ea[_0x4d75('0x1f')])?0x0:_0x4da5ea[_0x4d75('0x1f')],'scheduledat':_0xa4d047,'countbusyretry':_0x4da5ea[_0x4d75('0x20')],'countcongestionretry':_0x4da5ea['countcongestionretry'],'countnoanswerretry':_0x4da5ea[_0x4d75('0x27')],'countnosuchnumberretry':_0x4da5ea[_0x4d75('0x28')],'countdropretry':_0x4da5ea[_0x4d75('0x22')],'countabandonedretry':_0x4da5ea[_0x4d75('0x23')],'countmachineretry':_0x4da5ea['countmachineretry'],'countagentrejectretry':_0x4da5ea[_0x4d75('0x25')],'createdAt':_0x4da5ea['createdAt'],'updatedAt':_0x4da5ea['updatedAt']};return db[_0x4d75('0x35')][_0x4d75('0x36')](function(_0x241d6c){return db[_0x4d75('0x1d')][_0x4d75('0x37')](_0x271032,{'where':{'id':_0x4da5ea['id']}},{'transaction':_0x241d6c})['then'](function(){return db[_0x4d75('0x16')][_0x4d75('0x37')](_0x3cd3ba,{'where':{'id':_0x48559c['id']}},{'transaction':_0x241d6c});});})[_0x4d75('0x1c')](function(_0x28f782){_0x2f87d6({'id':_0x48559c['id'],'phone':_0x4da5ea[_0x4d75('0x33')]});})[_0x4d75('0x15')](function(_0x566562){logger['error'](_0x4d75('0x38'),_0x566562['message']);_0x4e9e30({'error':_0x566562[_0x4d75('0x13')]});});});}exports[_0x4d75('0x39')]=function(_0x4ddfb3){var _0x2f0bd5=this;return new Promise(function(_0x1f8266,_0x53ddcc){return db[_0x4d75('0x16')][_0x4d75('0x37')](_0x4ddfb3['body'][_0x4d75('0x3a')],{'where':{'id':_0x4ddfb3[_0x4d75('0x17')]['id']}})[_0x4d75('0x1c')](function(_0x41ed4b){_0x1f8266(_0x41ed4b);})[_0x4d75('0x15')](function(_0xead7b9){logger['error']('IncrementPreviewCounters',_0xead7b9[_0x4d75('0x13')]);_0x53ddcc(_0x2f0bd5['error'](0x1f4,_0xead7b9['message']));});});};