Built motion from commit 3c2ce842.|2.6.31
[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 _0xd615=['duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','util','moment','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','OrderBy','ASC','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','CmHopperAdditionalPhone','countbusyretry','countnosuchnumberretry','countmachineretry','entity','VerifyAdditionalPhones','catch','SwapAdditionalPhones'];(function(_0x268111,_0x31c1f9){var _0x54e72a=function(_0x16e79c){while(--_0x16e79c){_0x268111['push'](_0x268111['shift']());}};_0x54e72a(++_0x31c1f9);}(_0xd615,0x1ef));var _0x5d61=function(_0x494a2d,_0x10294f){_0x494a2d=_0x494a2d-0x0;var _0x401327=_0xd615[_0x494a2d];return _0x401327;};'use strict';var _=require('lodash');var util=require(_0x5d61('0x0'));var moment=require(_0x5d61('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5d61('0x2'));var db=require(_0x5d61('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x5d61('0x4'))(_0x5d61('0x5'));var config=require(_0x5d61('0x6'));var jayson=require(_0x5d61('0x7'));var client=jayson[_0x5d61('0x8')][_0x5d61('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x14f0c5,_0x3c95b9,_0x134f70){return new BPromise(function(_0x360d43,_0x3c6011){return client[_0x5d61('0xa')](_0x14f0c5,_0x134f70)[_0x5d61('0xb')](function(_0x439d30){logger[_0x5d61('0xc')](_0x5d61('0xd'),_0x3c95b9,_0x5d61('0xe'));logger[_0x5d61('0xf')](_0x5d61('0x10'),_0x3c95b9,_0x5d61('0xe'),JSON[_0x5d61('0x11')](_0x439d30));if(_0x439d30['error']){if(_0x439d30[_0x5d61('0x12')][_0x5d61('0x13')]===0x1f4){logger[_0x5d61('0x12')](_0x5d61('0xd'),_0x3c95b9,_0x439d30[_0x5d61('0x12')][_0x5d61('0x14')]);return _0x3c6011(_0x439d30['error'][_0x5d61('0x14')]);}logger[_0x5d61('0x12')](_0x5d61('0xd'),_0x3c95b9,_0x439d30[_0x5d61('0x12')][_0x5d61('0x14')]);return _0x360d43(_0x439d30[_0x5d61('0x12')][_0x5d61('0x14')]);}else{logger[_0x5d61('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3c95b9,_0x5d61('0xe'));_0x360d43(_0x439d30[_0x5d61('0x15')][_0x5d61('0x14')]);}})['catch'](function(_0x4372c5){logger[_0x5d61('0x12')](_0x5d61('0xd'),_0x3c95b9,_0x4372c5);_0x3c6011(_0x4372c5);});});}exports['VerifyAdditionalPhones']=function(_0x14926c){var _0x340c9b=this;return new Promise(function(_0x240ebd,_0x5a6c88){return db[_0x5d61('0x16')][_0x5d61('0x17')]({'raw':!![],'where':{'ContactId':_0x14926c[_0x5d61('0x18')][_0x5d61('0x19')],'ListId':_0x14926c['body'][_0x5d61('0x1a')],'VoiceQueueId':_0x14926c[_0x5d61('0x18')][_0x5d61('0x1b')]===undefined?null:_0x14926c[_0x5d61('0x18')][_0x5d61('0x1b')],'CampaignId':_0x14926c[_0x5d61('0x18')][_0x5d61('0x1c')]===undefined?null:_0x14926c[_0x5d61('0x18')][_0x5d61('0x1c')]}})[_0x5d61('0xb')](function(_0x32875b){if(_0x32875b!=null){return db['CmHopperAdditionalPhone'][_0x5d61('0x17')]({'raw':!![],'where':{'CmHopperId':_0x32875b['id'],'OrderBy':{'$gt':_0x32875b[_0x5d61('0x1d')]}},'order':[[_0x5d61('0x1d'),_0x5d61('0x1e')]]})[_0x5d61('0xb')](function(_0x2d192f){var _0x100790=0x0;if(_0x2d192f){if(_0x2d192f['countbusyretry']+_0x2d192f[_0x5d61('0x1f')]+_0x2d192f[_0x5d61('0x20')]+_0x2d192f['countnosuchnumberretry']+_0x2d192f[_0x5d61('0x21')]+_0x2d192f[_0x5d61('0x22')]+_0x2d192f['countmachineretry']+_0x2d192f[_0x5d61('0x23')]<_0x14926c['entity'][_0x5d61('0x24')])_0x100790=0x1;_0x240ebd({'additional':_0x100790});}else{return db[_0x5d61('0x25')][_0x5d61('0x17')]({'raw':!![],'where':{'CmHopperId':_0x32875b['id']},'order':[['OrderBy',_0x5d61('0x1e')]]})[_0x5d61('0xb')](function(_0x4caf7a){var _0x94ea48=0x0;if(_0x4caf7a){if(_0x4caf7a[_0x5d61('0x26')]+_0x4caf7a['countcongestionretry']+_0x4caf7a['countnoanswerretry']+_0x4caf7a[_0x5d61('0x27')]+_0x4caf7a[_0x5d61('0x21')]+_0x4caf7a[_0x5d61('0x22')]+_0x4caf7a[_0x5d61('0x28')]+_0x4caf7a['countagentrejectretry']<_0x14926c[_0x5d61('0x29')][_0x5d61('0x24')])_0x94ea48=0x1;_0x240ebd({'additional':_0x94ea48});}else{_0x240ebd({'additional':0x0});}})['catch'](function(_0x55080c){logger[_0x5d61('0x12')](_0x5d61('0x2a'),_0x55080c[_0x5d61('0x14')]);_0x5a6c88(_0x340c9b[_0x5d61('0x12')](0x1f4,_0x55080c[_0x5d61('0x14')]));});}})[_0x5d61('0x2b')](function(_0x321be7){logger['error'](_0x5d61('0x2a'),_0x321be7['message']);_0x5a6c88(_0x340c9b['error'](0x1f4,_0x321be7[_0x5d61('0x14')]));});}else _0x240ebd({'additional':0x0});});});};exports[_0x5d61('0x2c')]=function(_0xa1adfd){var _0x402eaf=this;return new Promise(function(_0x3a1f64,_0x37d925){return db[_0x5d61('0x16')]['findOne']({'raw':!![],'where':{'ContactId':_0xa1adfd[_0x5d61('0x18')][_0x5d61('0x19')],'ListId':_0xa1adfd[_0x5d61('0x18')][_0x5d61('0x1a')],'VoiceQueueId':_0xa1adfd[_0x5d61('0x18')][_0x5d61('0x1b')]===undefined?null:_0xa1adfd[_0x5d61('0x18')]['VoiceQueueId'],'CampaignId':_0xa1adfd[_0x5d61('0x18')][_0x5d61('0x1c')]===undefined?null:_0xa1adfd['body'][_0x5d61('0x1c')]}})['then'](function(_0x155ec4){if(_0x155ec4!=null){return db[_0x5d61('0x25')][_0x5d61('0x17')]({'raw':!![],'where':{'CmHopperId':_0x155ec4['id'],'OrderBy':{'$gte':_0x155ec4[_0x5d61('0x1d')]}},'order':[[_0x5d61('0x1d'),_0x5d61('0x1e')]]})[_0x5d61('0xb')](function(_0x22cc93){if(_0x22cc93)return activateAdditionalPhone(_0x155ec4,_0xa1adfd[_0x5d61('0x18')],_0x22cc93,_0xa1adfd[_0x5d61('0x2d')],_0xa1adfd[_0x5d61('0x2e')])[_0x5d61('0xb')](function(_0x4516d8){_0x3a1f64(_0x4516d8);});else{return db[_0x5d61('0x25')][_0x5d61('0x17')]({'raw':!![],'where':{'CmHopperId':_0x155ec4['id']},'order':[[_0x5d61('0x1d'),_0x5d61('0x1e')]]})['then'](function(_0x204499){if(_0x204499)return activateAdditionalPhone(_0x155ec4,_0xa1adfd[_0x5d61('0x18')],_0x204499,_0xa1adfd[_0x5d61('0x2d')],_0xa1adfd[_0x5d61('0x2e')])['then'](function(_0x1abc26){_0x3a1f64(_0x1abc26);});else{_0x3a1f64({'id':_0x155ec4['id'],'phone':''});}})[_0x5d61('0x2b')](function(_0x3428ff){logger[_0x5d61('0x12')](_0x5d61('0x2a'),_0x3428ff['message']);_0x37d925(_0x402eaf[_0x5d61('0x12')](0x1f4,_0x3428ff['message']));});}})['catch'](function(_0x2929ba){logger['error'](_0x5d61('0x2a'),_0x2929ba[_0x5d61('0x14')]);_0x37d925(_0x402eaf[_0x5d61('0x12')](0x1f4,_0x2929ba[_0x5d61('0x14')]));});}else _0x3a1f64(0x1);});});};function activateAdditionalPhone(_0x22041a,_0x5096d4,_0x18c2a0,_0x4d511a,_0x1b7f5d){return new Promise(function(_0x219268,_0x2e5e29){var _0x5ac506;if(_[_0x5d61('0x2f')](_0x18c2a0['scheduledat'])){_0x18c2a0['scheduledat']=moment();}if(moment()>moment(_0x18c2a0[_0x5d61('0x30')])){_0x5ac506=moment()[_0x5d61('0x31')](_0x1b7f5d||0x3,'minutes');}else{if(_0x18c2a0['OrderBy']==0x0){_0x5ac506=moment(_0x18c2a0[_0x5d61('0x30')]);}else{_0x5ac506=moment()[_0x5d61('0x31')](_0x1b7f5d||0x3,_0x5d61('0x32'));}}if(_[_0x5d61('0x2f')](_0x5ac506)){_0x5ac506=moment()['add'](_0x1b7f5d||0x3,_0x5d61('0x32'));}var _0x382ce1={'phone':_0x22041a[_0x5d61('0x33')],'active':0x0,'OrderBy':_[_0x5d61('0x2f')](_0x22041a['OrderBy'])?0x0:_0x22041a[_0x5d61('0x1d')],'scheduledat':moment()['add'](_0x4d511a||0x1,'minutes'),'countbusyretry':_0x5096d4[_0x5d61('0x26')],'countcongestionretry':_0x5096d4['countcongestionretry'],'countnoanswerretry':_0x5096d4[_0x5d61('0x20')],'countnosuchnumberretry':_0x5096d4[_0x5d61('0x27')],'countdropretry':_0x5096d4['countdropretry'],'countabandonedretry':_0x5096d4[_0x5d61('0x22')],'countmachineretry':_0x5096d4['countmachineretry'],'countagentrejectretry':_0x5096d4[_0x5d61('0x23')],'createdAt':_0x5096d4[_0x5d61('0x34')],'updatedAt':_0x5096d4[_0x5d61('0x35')]};var _0x240d9d={'CmHopperId':_0x22041a['id'],'phone':_0x18c2a0[_0x5d61('0x33')],'active':0x0,'OrderBy':_['isNil'](_0x18c2a0['OrderBy'])?0x0:_0x18c2a0[_0x5d61('0x1d')],'scheduledat':_0x5ac506,'countbusyretry':_0x18c2a0[_0x5d61('0x26')],'countcongestionretry':_0x18c2a0['countcongestionretry'],'countnoanswerretry':_0x18c2a0[_0x5d61('0x20')],'countnosuchnumberretry':_0x18c2a0[_0x5d61('0x27')],'countdropretry':_0x18c2a0['countdropretry'],'countabandonedretry':_0x18c2a0[_0x5d61('0x22')],'countmachineretry':_0x18c2a0[_0x5d61('0x28')],'countagentrejectretry':_0x18c2a0['countagentrejectretry'],'createdAt':_0x18c2a0[_0x5d61('0x34')],'updatedAt':_0x18c2a0[_0x5d61('0x35')]};return db[_0x5d61('0x36')][_0x5d61('0x37')](function(_0x4ec0e0){return db['CmHopperAdditionalPhone'][_0x5d61('0x38')](_0x382ce1,{'where':{'id':_0x18c2a0['id']}},{'transaction':_0x4ec0e0})[_0x5d61('0xb')](function(){return db[_0x5d61('0x16')][_0x5d61('0x38')](_0x240d9d,{'where':{'id':_0x22041a['id']}},{'transaction':_0x4ec0e0});});})['then'](function(_0x315125){_0x219268({'id':_0x22041a['id'],'phone':_0x18c2a0[_0x5d61('0x33')]});})[_0x5d61('0x2b')](function(_0x154ddc){logger[_0x5d61('0x12')](_0x5d61('0x39'),_0x154ddc[_0x5d61('0x14')]);_0x2e5e29({'error':_0x154ddc[_0x5d61('0x14')]});});});}exports[_0x5d61('0x3a')]=function(_0x25f8ce){var _0x57b579=this;return new Promise(function(_0x31fe14,_0x4661ff){return db[_0x5d61('0x16')][_0x5d61('0x38')](_0x25f8ce['body'][_0x5d61('0x3b')],{'where':{'id':_0x25f8ce[_0x5d61('0x18')]['id']}})[_0x5d61('0xb')](function(_0x24ac17){_0x31fe14(_0x24ac17);})[_0x5d61('0x2b')](function(_0x4ee441){logger[_0x5d61('0x12')](_0x5d61('0x3a'),_0x4ee441[_0x5d61('0x14')]);_0x4661ff(_0x57b579[_0x5d61('0x12')](0x1f4,_0x4ee441['message']));});});};