386d69a8b71b8404cbf55ba061b427262c642ea5
[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 _0x240f=['entity','dialGlobalMaxRetry','VerifyAdditionalPhones','SwapAdditionalPhones','duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','update','activateAdditionalPhone','IncrementPreviewCounters','field','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','CmHopperAdditionalPhone','countdropretry','countagentrejectretry'];(function(_0x458b06,_0x12f681){var _0x5e0eb3=function(_0x1cbec0){while(--_0x1cbec0){_0x458b06['push'](_0x458b06['shift']());}};_0x5e0eb3(++_0x12f681);}(_0x240f,0x1ad));var _0xf240=function(_0x278dde,_0x22456d){_0x278dde=_0x278dde-0x0;var _0x24c1ab=_0x240f[_0x278dde];return _0x24c1ab;};'use strict';var _=require('lodash');var util=require(_0xf240('0x0'));var moment=require(_0xf240('0x1'));var BPromise=require(_0xf240('0x2'));var rs=require(_0xf240('0x3'));var fs=require('fs');var Redis=require(_0xf240('0x4'));var db=require(_0xf240('0x5'))['db'];var utils=require(_0xf240('0x6'));var logger=require(_0xf240('0x7'))(_0xf240('0x8'));var config=require(_0xf240('0x9'));var jayson=require(_0xf240('0xa'));var client=jayson[_0xf240('0xb')][_0xf240('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1ecfc3,_0x36ba90,_0x3d6d22){return new BPromise(function(_0x21d1bb,_0x1f4772){return client[_0xf240('0xd')](_0x1ecfc3,_0x3d6d22)[_0xf240('0xe')](function(_0x1af42a){logger[_0xf240('0xf')](_0xf240('0x10'),_0x36ba90,'request\x20sent');logger[_0xf240('0x11')](_0xf240('0x12'),_0x36ba90,_0xf240('0x13'),JSON[_0xf240('0x14')](_0x1af42a));if(_0x1af42a['error']){if(_0x1af42a[_0xf240('0x15')]['code']===0x1f4){logger[_0xf240('0x15')](_0xf240('0x10'),_0x36ba90,_0x1af42a[_0xf240('0x15')][_0xf240('0x16')]);return _0x1f4772(_0x1af42a[_0xf240('0x15')][_0xf240('0x16')]);}logger[_0xf240('0x15')](_0xf240('0x10'),_0x36ba90,_0x1af42a[_0xf240('0x15')][_0xf240('0x16')]);return _0x21d1bb(_0x1af42a[_0xf240('0x15')]['message']);}else{logger[_0xf240('0xf')](_0xf240('0x10'),_0x36ba90,_0xf240('0x13'));_0x21d1bb(_0x1af42a[_0xf240('0x17')]['message']);}})[_0xf240('0x18')](function(_0xc1a47c){logger[_0xf240('0x15')](_0xf240('0x10'),_0x36ba90,_0xc1a47c);_0x1f4772(_0xc1a47c);});});}exports['VerifyAdditionalPhones']=function(_0x5ead2b){var _0xa6301a=this;return new Promise(function(_0xd2ee7,_0x1e971a){return db[_0xf240('0x19')][_0xf240('0x1a')]({'raw':!![],'where':{'ContactId':_0x5ead2b[_0xf240('0x1b')][_0xf240('0x1c')],'ListId':_0x5ead2b[_0xf240('0x1b')][_0xf240('0x1d')],'VoiceQueueId':_0x5ead2b[_0xf240('0x1b')][_0xf240('0x1e')]===undefined?null:_0x5ead2b[_0xf240('0x1b')]['VoiceQueueId'],'CampaignId':_0x5ead2b['body'][_0xf240('0x1f')]===undefined?null:_0x5ead2b['body'][_0xf240('0x1f')]}})[_0xf240('0xe')](function(_0x3b7824){if(_0x3b7824!=null){return db['CmHopperAdditionalPhone'][_0xf240('0x1a')]({'raw':!![],'where':{'CmHopperId':_0x3b7824['id'],'OrderBy':{'$gt':_0x3b7824[_0xf240('0x20')]}},'order':[[_0xf240('0x20'),_0xf240('0x21')]]})[_0xf240('0xe')](function(_0x1bce31){var _0x213fea=0x0;if(_0x1bce31){if(_0x1bce31[_0xf240('0x22')]+_0x1bce31[_0xf240('0x23')]+_0x1bce31[_0xf240('0x24')]+_0x1bce31[_0xf240('0x25')]+_0x1bce31['countdropretry']+_0x1bce31[_0xf240('0x26')]+_0x1bce31[_0xf240('0x27')]+_0x1bce31['countagentrejectretry']<_0x5ead2b['entity']['dialGlobalMaxRetry'])_0x213fea=0x1;_0xd2ee7({'additional':_0x213fea});}else{return db[_0xf240('0x28')][_0xf240('0x1a')]({'raw':!![],'where':{'CmHopperId':_0x3b7824['id']},'order':[[_0xf240('0x20'),_0xf240('0x21')]]})[_0xf240('0xe')](function(_0x150ee4){var _0x19605c=0x0;if(_0x150ee4){if(_0x150ee4[_0xf240('0x22')]+_0x150ee4[_0xf240('0x23')]+_0x150ee4[_0xf240('0x24')]+_0x150ee4['countnosuchnumberretry']+_0x150ee4[_0xf240('0x29')]+_0x150ee4['countabandonedretry']+_0x150ee4['countmachineretry']+_0x150ee4[_0xf240('0x2a')]<_0x5ead2b[_0xf240('0x2b')][_0xf240('0x2c')])_0x19605c=0x1;_0xd2ee7({'additional':_0x19605c});}else{_0xd2ee7({'additional':0x0});}})[_0xf240('0x18')](function(_0x448fc2){logger[_0xf240('0x15')]('VerifyAdditionalPhones',_0x448fc2[_0xf240('0x16')]);_0x1e971a(_0xa6301a[_0xf240('0x15')](0x1f4,_0x448fc2['message']));});}})[_0xf240('0x18')](function(_0x56cb17){logger[_0xf240('0x15')](_0xf240('0x2d'),_0x56cb17['message']);_0x1e971a(_0xa6301a[_0xf240('0x15')](0x1f4,_0x56cb17[_0xf240('0x16')]));});}else _0xd2ee7({'additional':0x0});});});};exports[_0xf240('0x2e')]=function(_0x177d03){var _0x52b7a2=this;return new Promise(function(_0x39a4a9,_0x11c28d){return db[_0xf240('0x19')][_0xf240('0x1a')]({'raw':!![],'where':{'ContactId':_0x177d03[_0xf240('0x1b')][_0xf240('0x1c')],'ListId':_0x177d03['body'][_0xf240('0x1d')],'VoiceQueueId':_0x177d03['body'][_0xf240('0x1e')]===undefined?null:_0x177d03[_0xf240('0x1b')][_0xf240('0x1e')],'CampaignId':_0x177d03['body']['CampaignId']===undefined?null:_0x177d03['body'][_0xf240('0x1f')]}})[_0xf240('0xe')](function(_0x16b383){if(_0x16b383!=null){return db[_0xf240('0x28')][_0xf240('0x1a')]({'raw':!![],'where':{'CmHopperId':_0x16b383['id'],'OrderBy':{'$gte':_0x16b383[_0xf240('0x20')]}},'order':[['OrderBy',_0xf240('0x21')]]})[_0xf240('0xe')](function(_0x1fc035){if(_0x1fc035)return activateAdditionalPhone(_0x16b383,_0x177d03['body'],_0x1fc035,_0x177d03[_0xf240('0x2f')],_0x177d03[_0xf240('0x30')])[_0xf240('0xe')](function(_0x2e18eb){_0x39a4a9(_0x2e18eb);});else{return db[_0xf240('0x28')][_0xf240('0x1a')]({'raw':!![],'where':{'CmHopperId':_0x16b383['id']},'order':[[_0xf240('0x20'),_0xf240('0x21')]]})[_0xf240('0xe')](function(_0x2bf4ff){if(_0x2bf4ff)return activateAdditionalPhone(_0x16b383,_0x177d03[_0xf240('0x1b')],_0x2bf4ff,_0x177d03['duration'],_0x177d03[_0xf240('0x30')])[_0xf240('0xe')](function(_0x16a78f){_0x39a4a9(_0x16a78f);});else{_0x39a4a9({'id':_0x16b383['id'],'phone':''});}})['catch'](function(_0x32bdf9){logger[_0xf240('0x15')](_0xf240('0x2d'),_0x32bdf9[_0xf240('0x16')]);_0x11c28d(_0x52b7a2[_0xf240('0x15')](0x1f4,_0x32bdf9[_0xf240('0x16')]));});}})['catch'](function(_0x5b7006){logger['error'](_0xf240('0x2d'),_0x5b7006['message']);_0x11c28d(_0x52b7a2[_0xf240('0x15')](0x1f4,_0x5b7006[_0xf240('0x16')]));});}else _0x39a4a9(0x1);});});};function activateAdditionalPhone(_0x36fee0,_0x59d224,_0x411c52,_0x343c06,_0x189f85){return new Promise(function(_0x3b9509,_0x11e7b4){var _0x45ea2a;if(_[_0xf240('0x31')](_0x411c52[_0xf240('0x32')])){_0x411c52[_0xf240('0x32')]=moment();}if(moment()>moment(_0x411c52['scheduledat'])){_0x45ea2a=moment()[_0xf240('0x33')](_0x189f85||0x3,_0xf240('0x34'));}else{if(_0x411c52[_0xf240('0x20')]==0x0){_0x45ea2a=moment(_0x411c52[_0xf240('0x32')]);}else{_0x45ea2a=moment()[_0xf240('0x33')](_0x189f85||0x3,_0xf240('0x34'));}}if(_[_0xf240('0x31')](_0x45ea2a)){_0x45ea2a=moment()[_0xf240('0x33')](_0x189f85||0x3,'minutes');}var _0x47018b={'phone':_0x36fee0[_0xf240('0x35')],'active':0x0,'OrderBy':_[_0xf240('0x31')](_0x36fee0['OrderBy'])?0x0:_0x36fee0[_0xf240('0x20')],'scheduledat':moment()[_0xf240('0x33')](_0x343c06||0x1,_0xf240('0x34')),'countbusyretry':_0x59d224[_0xf240('0x22')],'countcongestionretry':_0x59d224[_0xf240('0x23')],'countnoanswerretry':_0x59d224[_0xf240('0x24')],'countnosuchnumberretry':_0x59d224['countnosuchnumberretry'],'countdropretry':_0x59d224[_0xf240('0x29')],'countabandonedretry':_0x59d224[_0xf240('0x26')],'countmachineretry':_0x59d224[_0xf240('0x27')],'countagentrejectretry':_0x59d224[_0xf240('0x2a')],'createdAt':_0x59d224[_0xf240('0x36')],'updatedAt':_0x59d224['updatedAt']};var _0x2a4686={'CmHopperId':_0x36fee0['id'],'phone':_0x411c52[_0xf240('0x35')],'active':0x0,'OrderBy':_[_0xf240('0x31')](_0x411c52[_0xf240('0x20')])?0x0:_0x411c52['OrderBy'],'scheduledat':_0x45ea2a,'countbusyretry':_0x411c52[_0xf240('0x22')],'countcongestionretry':_0x411c52[_0xf240('0x23')],'countnoanswerretry':_0x411c52[_0xf240('0x24')],'countnosuchnumberretry':_0x411c52[_0xf240('0x25')],'countdropretry':_0x411c52[_0xf240('0x29')],'countabandonedretry':_0x411c52[_0xf240('0x26')],'countmachineretry':_0x411c52[_0xf240('0x27')],'countagentrejectretry':_0x411c52[_0xf240('0x2a')],'createdAt':_0x411c52[_0xf240('0x36')],'updatedAt':_0x411c52['updatedAt']};return db['sequelize']['transaction'](function(_0x4f4d1b){return db[_0xf240('0x28')]['update'](_0x47018b,{'where':{'id':_0x411c52['id']}},{'transaction':_0x4f4d1b})[_0xf240('0xe')](function(){return db['CmHopper'][_0xf240('0x37')](_0x2a4686,{'where':{'id':_0x36fee0['id']}},{'transaction':_0x4f4d1b});});})[_0xf240('0xe')](function(_0x4d9da5){_0x3b9509({'id':_0x36fee0['id'],'phone':_0x411c52[_0xf240('0x35')]});})[_0xf240('0x18')](function(_0x1c59da){logger[_0xf240('0x15')](_0xf240('0x38'),_0x1c59da[_0xf240('0x16')]);_0x11e7b4({'error':_0x1c59da[_0xf240('0x16')]});});});}exports[_0xf240('0x39')]=function(_0x5d02b6){var _0x29bd9f=this;return new Promise(function(_0x201f72,_0x4b18f4){return db[_0xf240('0x19')][_0xf240('0x37')](_0x5d02b6[_0xf240('0x1b')][_0xf240('0x3a')],{'where':{'id':_0x5d02b6[_0xf240('0x1b')]['id']}})[_0xf240('0xe')](function(_0x284436){_0x201f72(_0x284436);})[_0xf240('0x18')](function(_0x4eace0){logger[_0xf240('0x15')](_0xf240('0x39'),_0x4eace0['message']);_0x4b18f4(_0x29bd9f[_0xf240('0x15')](0x1f4,_0x4eace0[_0xf240('0x16')]));});});};