Built motion from commit 39adb707.|2.6.14
[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 _0x5524=['countagentrejectretry','entity','dialGlobalMaxRetry','countdropretry','countabandonedretry','countmachineretry','catch','SwapAdditionalPhones','duration','waitTime','scheduledat','add','minutes','isNil','countbusyretry','createdAt','updatedAt','update','phone','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','then','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','VerifyAdditionalPhones','CmHopper','findOne','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countcongestionretry','countnoanswerretry','countnosuchnumberretry'];(function(_0x156a0d,_0x3946ce){var _0x98a9ba=function(_0x46c1b2){while(--_0x46c1b2){_0x156a0d['push'](_0x156a0d['shift']());}};_0x98a9ba(++_0x3946ce);}(_0x5524,0x166));var _0x4552=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x5524[_0x3b380d];return _0x54502b;};'use strict';var _=require(_0x4552('0x0'));var util=require('util');var moment=require(_0x4552('0x1'));var BPromise=require(_0x4552('0x2'));var rs=require(_0x4552('0x3'));var fs=require('fs');var Redis=require(_0x4552('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4552('0x5'));var logger=require(_0x4552('0x6'))('rpc');var config=require(_0x4552('0x7'));var jayson=require(_0x4552('0x8'));var client=jayson['client'][_0x4552('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x257294,_0x9d2710,_0x1ce47d){return new BPromise(function(_0x27ed32,_0x449261){return client[_0x4552('0xa')](_0x257294,_0x1ce47d)[_0x4552('0xb')](function(_0x38214b){logger['info'](_0x4552('0xc'),_0x9d2710,_0x4552('0xd'));logger[_0x4552('0xe')](_0x4552('0xf'),_0x9d2710,_0x4552('0xd'),JSON[_0x4552('0x10')](_0x38214b));if(_0x38214b[_0x4552('0x11')]){if(_0x38214b[_0x4552('0x11')][_0x4552('0x12')]===0x1f4){logger[_0x4552('0x11')](_0x4552('0xc'),_0x9d2710,_0x38214b[_0x4552('0x11')]['message']);return _0x449261(_0x38214b['error'][_0x4552('0x13')]);}logger[_0x4552('0x11')](_0x4552('0xc'),_0x9d2710,_0x38214b[_0x4552('0x11')]['message']);return _0x27ed32(_0x38214b[_0x4552('0x11')][_0x4552('0x13')]);}else{logger[_0x4552('0x14')](_0x4552('0xc'),_0x9d2710,_0x4552('0xd'));_0x27ed32(_0x38214b['result'][_0x4552('0x13')]);}})['catch'](function(_0x61a0b2){logger[_0x4552('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x9d2710,_0x61a0b2);_0x449261(_0x61a0b2);});});}exports[_0x4552('0x15')]=function(_0x342e90){var _0x3f5ec7=this;return new Promise(function(_0x3d2568,_0x187b91){return db[_0x4552('0x16')][_0x4552('0x17')]({'raw':!![],'where':{'ContactId':_0x342e90[_0x4552('0x18')]['ContactId'],'ListId':_0x342e90[_0x4552('0x18')][_0x4552('0x19')],'VoiceQueueId':_0x342e90[_0x4552('0x18')][_0x4552('0x1a')]===undefined?null:_0x342e90[_0x4552('0x18')][_0x4552('0x1a')],'CampaignId':_0x342e90[_0x4552('0x18')][_0x4552('0x1b')]===undefined?null:_0x342e90['body']['CampaignId']}})[_0x4552('0xb')](function(_0x8d5650){if(_0x8d5650!=null){return db[_0x4552('0x1c')][_0x4552('0x17')]({'raw':!![],'where':{'CmHopperId':_0x8d5650['id'],'OrderBy':{'$gt':_0x8d5650[_0x4552('0x1d')]}},'order':[[_0x4552('0x1d'),_0x4552('0x1e')]]})['then'](function(_0x5a818a){var _0xc76a76=0x0;if(_0x5a818a){if(_0x5a818a['countbusyretry']+_0x5a818a[_0x4552('0x1f')]+_0x5a818a[_0x4552('0x20')]+_0x5a818a[_0x4552('0x21')]+_0x5a818a['countdropretry']+_0x5a818a['countabandonedretry']+_0x5a818a['countmachineretry']+_0x5a818a[_0x4552('0x22')]<_0x342e90[_0x4552('0x23')][_0x4552('0x24')])_0xc76a76=0x1;_0x3d2568({'additional':_0xc76a76});}else{return db[_0x4552('0x1c')][_0x4552('0x17')]({'raw':!![],'where':{'CmHopperId':_0x8d5650['id']},'order':[['OrderBy','ASC']]})[_0x4552('0xb')](function(_0x2c05db){var _0x49a140=0x0;if(_0x2c05db){if(_0x2c05db['countbusyretry']+_0x2c05db['countcongestionretry']+_0x2c05db['countnoanswerretry']+_0x2c05db[_0x4552('0x21')]+_0x2c05db[_0x4552('0x25')]+_0x2c05db[_0x4552('0x26')]+_0x2c05db[_0x4552('0x27')]+_0x2c05db[_0x4552('0x22')]<_0x342e90['entity'][_0x4552('0x24')])_0x49a140=0x1;_0x3d2568({'additional':_0x49a140});}else{_0x3d2568({'additional':0x0});}})[_0x4552('0x28')](function(_0x47bd4f){logger[_0x4552('0x11')](_0x4552('0x15'),_0x47bd4f['message']);_0x187b91(_0x3f5ec7['error'](0x1f4,_0x47bd4f['message']));});}})[_0x4552('0x28')](function(_0x37189d){logger[_0x4552('0x11')]('VerifyAdditionalPhones',_0x37189d[_0x4552('0x13')]);_0x187b91(_0x3f5ec7[_0x4552('0x11')](0x1f4,_0x37189d[_0x4552('0x13')]));});}else _0x3d2568({'additional':0x0});});});};exports[_0x4552('0x29')]=function(_0x5148ef){var _0x274d20=this;return new Promise(function(_0x452d75,_0x47f5d1){return db['CmHopper'][_0x4552('0x17')]({'raw':!![],'where':{'ContactId':_0x5148ef[_0x4552('0x18')]['ContactId'],'ListId':_0x5148ef[_0x4552('0x18')]['ListId'],'VoiceQueueId':_0x5148ef['body'][_0x4552('0x1a')]===undefined?null:_0x5148ef[_0x4552('0x18')][_0x4552('0x1a')],'CampaignId':_0x5148ef['body'][_0x4552('0x1b')]===undefined?null:_0x5148ef[_0x4552('0x18')][_0x4552('0x1b')]}})[_0x4552('0xb')](function(_0x48f8b1){if(_0x48f8b1!=null){return db[_0x4552('0x1c')][_0x4552('0x17')]({'raw':!![],'where':{'CmHopperId':_0x48f8b1['id'],'OrderBy':{'$gte':_0x48f8b1[_0x4552('0x1d')]}},'order':[[_0x4552('0x1d'),_0x4552('0x1e')]]})[_0x4552('0xb')](function(_0x69054f){if(_0x69054f)return activateAdditionalPhone(_0x48f8b1,_0x5148ef[_0x4552('0x18')],_0x69054f,_0x5148ef[_0x4552('0x2a')],_0x5148ef[_0x4552('0x2b')])['then'](function(_0x1a8626){_0x452d75(_0x1a8626);});else{return db[_0x4552('0x1c')][_0x4552('0x17')]({'raw':!![],'where':{'CmHopperId':_0x48f8b1['id']},'order':[[_0x4552('0x1d'),_0x4552('0x1e')]]})[_0x4552('0xb')](function(_0x8805de){if(_0x8805de)return activateAdditionalPhone(_0x48f8b1,_0x5148ef['body'],_0x8805de,_0x5148ef['duration'],_0x5148ef[_0x4552('0x2b')])[_0x4552('0xb')](function(_0x51fcff){_0x452d75(_0x51fcff);});else{_0x452d75({'id':_0x48f8b1['id'],'phone':''});}})[_0x4552('0x28')](function(_0x29aa47){logger[_0x4552('0x11')](_0x4552('0x15'),_0x29aa47['message']);_0x47f5d1(_0x274d20[_0x4552('0x11')](0x1f4,_0x29aa47['message']));});}})[_0x4552('0x28')](function(_0x162066){logger[_0x4552('0x11')](_0x4552('0x15'),_0x162066[_0x4552('0x13')]);_0x47f5d1(_0x274d20['error'](0x1f4,_0x162066[_0x4552('0x13')]));});}else _0x452d75(0x1);});});};function activateAdditionalPhone(_0x391bd7,_0x118092,_0x4a3aaf,_0x90459,_0x485d98){return new Promise(function(_0x1dc736,_0x4269e3){var _0x471e96;if(_['isNil'](_0x4a3aaf['scheduledat'])){_0x4a3aaf[_0x4552('0x2c')]=moment();}if(moment()>moment(_0x4a3aaf['scheduledat'])){_0x471e96=moment()[_0x4552('0x2d')](_0x485d98||0x3,_0x4552('0x2e'));}else{if(_0x4a3aaf['OrderBy']==0x0){_0x471e96=moment(_0x4a3aaf['scheduledat']);}else{_0x471e96=moment()[_0x4552('0x2d')](_0x485d98||0x3,_0x4552('0x2e'));}}if(_[_0x4552('0x2f')](_0x471e96)){_0x471e96=moment()['add'](_0x485d98||0x3,_0x4552('0x2e'));}var _0x315517={'phone':_0x391bd7['phone'],'active':0x0,'OrderBy':_[_0x4552('0x2f')](_0x391bd7[_0x4552('0x1d')])?0x0:_0x391bd7[_0x4552('0x1d')],'scheduledat':moment()[_0x4552('0x2d')](_0x90459||0x1,_0x4552('0x2e')),'countbusyretry':_0x118092[_0x4552('0x30')],'countcongestionretry':_0x118092['countcongestionretry'],'countnoanswerretry':_0x118092[_0x4552('0x20')],'countnosuchnumberretry':_0x118092[_0x4552('0x21')],'countdropretry':_0x118092[_0x4552('0x25')],'countabandonedretry':_0x118092[_0x4552('0x26')],'countmachineretry':_0x118092[_0x4552('0x27')],'countagentrejectretry':_0x118092[_0x4552('0x22')],'createdAt':_0x118092[_0x4552('0x31')],'updatedAt':_0x118092[_0x4552('0x32')]};var _0x590903={'CmHopperId':_0x391bd7['id'],'phone':_0x4a3aaf['phone'],'active':0x0,'OrderBy':_[_0x4552('0x2f')](_0x4a3aaf[_0x4552('0x1d')])?0x0:_0x4a3aaf[_0x4552('0x1d')],'scheduledat':_0x471e96,'countbusyretry':_0x4a3aaf['countbusyretry'],'countcongestionretry':_0x4a3aaf[_0x4552('0x1f')],'countnoanswerretry':_0x4a3aaf[_0x4552('0x20')],'countnosuchnumberretry':_0x4a3aaf['countnosuchnumberretry'],'countdropretry':_0x4a3aaf[_0x4552('0x25')],'countabandonedretry':_0x4a3aaf[_0x4552('0x26')],'countmachineretry':_0x4a3aaf[_0x4552('0x27')],'countagentrejectretry':_0x4a3aaf[_0x4552('0x22')],'createdAt':_0x4a3aaf[_0x4552('0x31')],'updatedAt':_0x4a3aaf['updatedAt']};return db['sequelize']['transaction'](function(_0x49686e){return db[_0x4552('0x1c')]['update'](_0x315517,{'where':{'id':_0x4a3aaf['id']}},{'transaction':_0x49686e})[_0x4552('0xb')](function(){return db[_0x4552('0x16')][_0x4552('0x33')](_0x590903,{'where':{'id':_0x391bd7['id']}},{'transaction':_0x49686e});});})[_0x4552('0xb')](function(_0x4c49b5){_0x1dc736({'id':_0x391bd7['id'],'phone':_0x4a3aaf[_0x4552('0x34')]});})['catch'](function(_0x27ac97){logger['error'](_0x4552('0x35'),_0x27ac97[_0x4552('0x13')]);_0x4269e3({'error':_0x27ac97[_0x4552('0x13')]});});});}exports[_0x4552('0x36')]=function(_0x486526){var _0x212146=this;return new Promise(function(_0x169cc4,_0x103363){return db['CmHopper'][_0x4552('0x33')](_0x486526['body'][_0x4552('0x37')],{'where':{'id':_0x486526[_0x4552('0x18')]['id']}})['then'](function(_0x26c143){_0x169cc4(_0x26c143);})[_0x4552('0x28')](function(_0x81f548){logger[_0x4552('0x11')](_0x4552('0x36'),_0x81f548[_0x4552('0x13')]);_0x103363(_0x212146['error'](0x1f4,_0x81f548['message']));});});};