Built motion from commit d1eab355.|2.6.28
[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 _0xb816=['CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','entity','countagentrejectretry','dialGlobalMaxRetry','VerifyAdditionalPhones','SwapAdditionalPhones','findOne','duration','isNil','scheduledat','add','minutes','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','bluebird','../../mysqldb','../../config/logger','rpc','jayson/promise','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CmHopper','body','ListId','VoiceQueueId'];(function(_0x16cf3f,_0x3c6af5){var _0x3bd0a5=function(_0x3ed6fd){while(--_0x3ed6fd){_0x16cf3f['push'](_0x16cf3f['shift']());}};_0x3bd0a5(++_0x3c6af5);}(_0xb816,0x1a0));var _0x6b81=function(_0x579939,_0x5acb13){_0x579939=_0x579939-0x0;var _0x5ab2fd=_0xb816[_0x579939];return _0x5ab2fd;};'use strict';var _=require(_0x6b81('0x0'));var util=require(_0x6b81('0x1'));var moment=require('moment');var BPromise=require(_0x6b81('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6b81('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x6b81('0x4'))(_0x6b81('0x5'));var config=require('../../config/environment');var jayson=require(_0x6b81('0x6'));var client=jayson['client'][_0x6b81('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5850ba,_0xe6407a,_0x113062){return new BPromise(function(_0x596c44,_0x8d573){return client[_0x6b81('0x8')](_0x5850ba,_0x113062)[_0x6b81('0x9')](function(_0x5324ab){logger[_0x6b81('0xa')](_0x6b81('0xb'),_0xe6407a,_0x6b81('0xc'));logger[_0x6b81('0xd')](_0x6b81('0xe'),_0xe6407a,_0x6b81('0xc'),JSON[_0x6b81('0xf')](_0x5324ab));if(_0x5324ab[_0x6b81('0x10')]){if(_0x5324ab['error']['code']===0x1f4){logger[_0x6b81('0x10')](_0x6b81('0xb'),_0xe6407a,_0x5324ab['error'][_0x6b81('0x11')]);return _0x8d573(_0x5324ab[_0x6b81('0x10')][_0x6b81('0x11')]);}logger[_0x6b81('0x10')](_0x6b81('0xb'),_0xe6407a,_0x5324ab[_0x6b81('0x10')]['message']);return _0x596c44(_0x5324ab[_0x6b81('0x10')][_0x6b81('0x11')]);}else{logger[_0x6b81('0xa')](_0x6b81('0xb'),_0xe6407a,_0x6b81('0xc'));_0x596c44(_0x5324ab[_0x6b81('0x12')][_0x6b81('0x11')]);}})[_0x6b81('0x13')](function(_0x349643){logger[_0x6b81('0x10')](_0x6b81('0xb'),_0xe6407a,_0x349643);_0x8d573(_0x349643);});});}exports['VerifyAdditionalPhones']=function(_0x250eb7){var _0x6fa358=this;return new Promise(function(_0x3732b0,_0x407212){return db[_0x6b81('0x14')]['findOne']({'raw':!![],'where':{'ContactId':_0x250eb7['body']['ContactId'],'ListId':_0x250eb7[_0x6b81('0x15')][_0x6b81('0x16')],'VoiceQueueId':_0x250eb7[_0x6b81('0x15')][_0x6b81('0x17')]===undefined?null:_0x250eb7[_0x6b81('0x15')][_0x6b81('0x17')],'CampaignId':_0x250eb7['body'][_0x6b81('0x18')]===undefined?null:_0x250eb7['body'][_0x6b81('0x18')]}})[_0x6b81('0x9')](function(_0x371b72){if(_0x371b72!=null){return db[_0x6b81('0x19')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x371b72['id'],'OrderBy':{'$gt':_0x371b72[_0x6b81('0x1a')]}},'order':[['OrderBy',_0x6b81('0x1b')]]})[_0x6b81('0x9')](function(_0x104a36){var _0x430a40=0x0;if(_0x104a36){if(_0x104a36[_0x6b81('0x1c')]+_0x104a36[_0x6b81('0x1d')]+_0x104a36[_0x6b81('0x1e')]+_0x104a36[_0x6b81('0x1f')]+_0x104a36[_0x6b81('0x20')]+_0x104a36[_0x6b81('0x21')]+_0x104a36[_0x6b81('0x22')]+_0x104a36['countagentrejectretry']<_0x250eb7[_0x6b81('0x23')]['dialGlobalMaxRetry'])_0x430a40=0x1;_0x3732b0({'additional':_0x430a40});}else{return db[_0x6b81('0x19')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x371b72['id']},'order':[[_0x6b81('0x1a'),_0x6b81('0x1b')]]})[_0x6b81('0x9')](function(_0x138c7b){var _0x2988ae=0x0;if(_0x138c7b){if(_0x138c7b[_0x6b81('0x1c')]+_0x138c7b[_0x6b81('0x1d')]+_0x138c7b[_0x6b81('0x1e')]+_0x138c7b['countnosuchnumberretry']+_0x138c7b[_0x6b81('0x20')]+_0x138c7b[_0x6b81('0x21')]+_0x138c7b[_0x6b81('0x22')]+_0x138c7b[_0x6b81('0x24')]<_0x250eb7[_0x6b81('0x23')][_0x6b81('0x25')])_0x2988ae=0x1;_0x3732b0({'additional':_0x2988ae});}else{_0x3732b0({'additional':0x0});}})[_0x6b81('0x13')](function(_0x21a595){logger[_0x6b81('0x10')]('VerifyAdditionalPhones',_0x21a595[_0x6b81('0x11')]);_0x407212(_0x6fa358['error'](0x1f4,_0x21a595['message']));});}})[_0x6b81('0x13')](function(_0x318387){logger[_0x6b81('0x10')](_0x6b81('0x26'),_0x318387[_0x6b81('0x11')]);_0x407212(_0x6fa358[_0x6b81('0x10')](0x1f4,_0x318387[_0x6b81('0x11')]));});}else _0x3732b0({'additional':0x0});});});};exports[_0x6b81('0x27')]=function(_0x3ff782){var _0x3a6eed=this;return new Promise(function(_0x1044ca,_0x48a9c7){return db[_0x6b81('0x14')][_0x6b81('0x28')]({'raw':!![],'where':{'ContactId':_0x3ff782[_0x6b81('0x15')]['ContactId'],'ListId':_0x3ff782['body'][_0x6b81('0x16')],'VoiceQueueId':_0x3ff782['body'][_0x6b81('0x17')]===undefined?null:_0x3ff782[_0x6b81('0x15')][_0x6b81('0x17')],'CampaignId':_0x3ff782[_0x6b81('0x15')][_0x6b81('0x18')]===undefined?null:_0x3ff782['body'][_0x6b81('0x18')]}})[_0x6b81('0x9')](function(_0x1a12d1){if(_0x1a12d1!=null){return db['CmHopperAdditionalPhone'][_0x6b81('0x28')]({'raw':!![],'where':{'CmHopperId':_0x1a12d1['id'],'OrderBy':{'$gte':_0x1a12d1[_0x6b81('0x1a')]}},'order':[[_0x6b81('0x1a'),'ASC']]})[_0x6b81('0x9')](function(_0xe280e6){if(_0xe280e6)return activateAdditionalPhone(_0x1a12d1,_0x3ff782[_0x6b81('0x15')],_0xe280e6,_0x3ff782[_0x6b81('0x29')],_0x3ff782['waitTime'])['then'](function(_0x4a604c){_0x1044ca(_0x4a604c);});else{return db[_0x6b81('0x19')][_0x6b81('0x28')]({'raw':!![],'where':{'CmHopperId':_0x1a12d1['id']},'order':[[_0x6b81('0x1a'),_0x6b81('0x1b')]]})[_0x6b81('0x9')](function(_0x31b79d){if(_0x31b79d)return activateAdditionalPhone(_0x1a12d1,_0x3ff782[_0x6b81('0x15')],_0x31b79d,_0x3ff782[_0x6b81('0x29')],_0x3ff782['waitTime'])[_0x6b81('0x9')](function(_0x1b927e){_0x1044ca(_0x1b927e);});else{_0x1044ca({'id':_0x1a12d1['id'],'phone':''});}})[_0x6b81('0x13')](function(_0x1dec88){logger[_0x6b81('0x10')](_0x6b81('0x26'),_0x1dec88[_0x6b81('0x11')]);_0x48a9c7(_0x3a6eed['error'](0x1f4,_0x1dec88[_0x6b81('0x11')]));});}})[_0x6b81('0x13')](function(_0x467873){logger[_0x6b81('0x10')]('VerifyAdditionalPhones',_0x467873[_0x6b81('0x11')]);_0x48a9c7(_0x3a6eed[_0x6b81('0x10')](0x1f4,_0x467873['message']));});}else _0x1044ca(0x1);});});};function activateAdditionalPhone(_0x4efe7d,_0x4561f5,_0x292196,_0x4509eb,_0x108728){return new Promise(function(_0x33210f,_0x3cf218){var _0x4b1567;if(_[_0x6b81('0x2a')](_0x292196['scheduledat'])){_0x292196[_0x6b81('0x2b')]=moment();}if(moment()>moment(_0x292196['scheduledat'])){_0x4b1567=moment()[_0x6b81('0x2c')](_0x108728||0x3,_0x6b81('0x2d'));}else{if(_0x292196[_0x6b81('0x1a')]==0x0){_0x4b1567=moment(_0x292196['scheduledat']);}else{_0x4b1567=moment()[_0x6b81('0x2c')](_0x108728||0x3,'minutes');}}if(_['isNil'](_0x4b1567)){_0x4b1567=moment()[_0x6b81('0x2c')](_0x108728||0x3,'minutes');}var _0x5d571e={'phone':_0x4efe7d[_0x6b81('0x2e')],'active':0x0,'OrderBy':_[_0x6b81('0x2a')](_0x4efe7d[_0x6b81('0x1a')])?0x0:_0x4efe7d[_0x6b81('0x1a')],'scheduledat':moment()[_0x6b81('0x2c')](_0x4509eb||0x1,'minutes'),'countbusyretry':_0x4561f5[_0x6b81('0x1c')],'countcongestionretry':_0x4561f5[_0x6b81('0x1d')],'countnoanswerretry':_0x4561f5['countnoanswerretry'],'countnosuchnumberretry':_0x4561f5[_0x6b81('0x1f')],'countdropretry':_0x4561f5[_0x6b81('0x20')],'countabandonedretry':_0x4561f5[_0x6b81('0x21')],'countmachineretry':_0x4561f5[_0x6b81('0x22')],'countagentrejectretry':_0x4561f5[_0x6b81('0x24')],'createdAt':_0x4561f5[_0x6b81('0x2f')],'updatedAt':_0x4561f5['updatedAt']};var _0x4f3dca={'CmHopperId':_0x4efe7d['id'],'phone':_0x292196[_0x6b81('0x2e')],'active':0x0,'OrderBy':_[_0x6b81('0x2a')](_0x292196['OrderBy'])?0x0:_0x292196[_0x6b81('0x1a')],'scheduledat':_0x4b1567,'countbusyretry':_0x292196[_0x6b81('0x1c')],'countcongestionretry':_0x292196[_0x6b81('0x1d')],'countnoanswerretry':_0x292196[_0x6b81('0x1e')],'countnosuchnumberretry':_0x292196[_0x6b81('0x1f')],'countdropretry':_0x292196[_0x6b81('0x20')],'countabandonedretry':_0x292196[_0x6b81('0x21')],'countmachineretry':_0x292196['countmachineretry'],'countagentrejectretry':_0x292196[_0x6b81('0x24')],'createdAt':_0x292196[_0x6b81('0x2f')],'updatedAt':_0x292196[_0x6b81('0x30')]};return db[_0x6b81('0x31')][_0x6b81('0x32')](function(_0x25cf87){return db[_0x6b81('0x19')][_0x6b81('0x33')](_0x5d571e,{'where':{'id':_0x292196['id']}},{'transaction':_0x25cf87})[_0x6b81('0x9')](function(){return db[_0x6b81('0x14')][_0x6b81('0x33')](_0x4f3dca,{'where':{'id':_0x4efe7d['id']}},{'transaction':_0x25cf87});});})['then'](function(_0x467ae3){_0x33210f({'id':_0x4efe7d['id'],'phone':_0x292196['phone']});})[_0x6b81('0x13')](function(_0x1b8362){logger['error'](_0x6b81('0x34'),_0x1b8362[_0x6b81('0x11')]);_0x3cf218({'error':_0x1b8362[_0x6b81('0x11')]});});});}exports[_0x6b81('0x35')]=function(_0x2d3dd6){var _0x3cf96d=this;return new Promise(function(_0x45ed9d,_0x1d3dd3){return db[_0x6b81('0x14')][_0x6b81('0x33')](_0x2d3dd6[_0x6b81('0x15')][_0x6b81('0x36')],{'where':{'id':_0x2d3dd6[_0x6b81('0x15')]['id']}})[_0x6b81('0x9')](function(_0x52ae2f){_0x45ed9d(_0x52ae2f);})[_0x6b81('0x13')](function(_0x5834ea){logger[_0x6b81('0x10')](_0x6b81('0x35'),_0x5834ea[_0x6b81('0x11')]);_0x1d3dd3(_0x3cf96d[_0x6b81('0x10')](0x1f4,_0x5834ea['message']));});});};