3bfa8cf346e7ff5ef87b6204350a7caa399fb617
[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 _0x4cf0=['countbusyretry','countabandonedretry','entity','SwapAdditionalPhones','CmHopper','waitTime','scheduledat','add','minutes','isNil','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','catch','VerifyAdditionalPhones','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','then','CmHopperAdditionalPhone','OrderBy','ASC','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','dialGlobalMaxRetry'];(function(_0x4c6cf0,_0x826f70){var _0x108145=function(_0x299f69){while(--_0x299f69){_0x4c6cf0['push'](_0x4c6cf0['shift']());}};_0x108145(++_0x826f70);}(_0x4cf0,0x13a));var _0x04cf=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x4cf0[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x04cf('0x0'));var util=require(_0x04cf('0x1'));var moment=require(_0x04cf('0x2'));var BPromise=require(_0x04cf('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x04cf('0x4'));var db=require(_0x04cf('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x04cf('0x6'))('rpc');var config=require(_0x04cf('0x7'));var jayson=require(_0x04cf('0x8'));var client=jayson[_0x04cf('0x9')][_0x04cf('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1f2029,_0x1f055d,_0x225ae7){return new BPromise(function(_0x6fe5d4,_0x586a63){return client[_0x04cf('0xb')](_0x1f2029,_0x225ae7)['then'](function(_0x5b6a46){logger[_0x04cf('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1f055d,_0x04cf('0xd'));logger[_0x04cf('0xe')](_0x04cf('0xf'),_0x1f055d,_0x04cf('0xd'),JSON[_0x04cf('0x10')](_0x5b6a46));if(_0x5b6a46[_0x04cf('0x11')]){if(_0x5b6a46[_0x04cf('0x11')][_0x04cf('0x12')]===0x1f4){logger[_0x04cf('0x11')](_0x04cf('0x13'),_0x1f055d,_0x5b6a46[_0x04cf('0x11')]['message']);return _0x586a63(_0x5b6a46[_0x04cf('0x11')]['message']);}logger['error'](_0x04cf('0x13'),_0x1f055d,_0x5b6a46['error'][_0x04cf('0x14')]);return _0x6fe5d4(_0x5b6a46['error'][_0x04cf('0x14')]);}else{logger[_0x04cf('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1f055d,'request\x20sent');_0x6fe5d4(_0x5b6a46['result'][_0x04cf('0x14')]);}})[_0x04cf('0x15')](function(_0x9eafde){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x1f055d,_0x9eafde);_0x586a63(_0x9eafde);});});}exports[_0x04cf('0x16')]=function(_0x3525d2){var _0x955111=this;return new Promise(function(_0x3bee15,_0x368507){return db['CmHopper'][_0x04cf('0x17')]({'raw':!![],'where':{'ContactId':_0x3525d2[_0x04cf('0x18')][_0x04cf('0x19')],'ListId':_0x3525d2[_0x04cf('0x18')][_0x04cf('0x1a')],'VoiceQueueId':_0x3525d2['body'][_0x04cf('0x1b')]===undefined?null:_0x3525d2[_0x04cf('0x18')]['VoiceQueueId'],'CampaignId':_0x3525d2[_0x04cf('0x18')][_0x04cf('0x1c')]===undefined?null:_0x3525d2[_0x04cf('0x18')][_0x04cf('0x1c')]}})[_0x04cf('0x1d')](function(_0x551761){if(_0x551761!=null){return db[_0x04cf('0x1e')][_0x04cf('0x17')]({'raw':!![],'where':{'CmHopperId':_0x551761['id'],'OrderBy':{'$gt':_0x551761[_0x04cf('0x1f')]}},'order':[[_0x04cf('0x1f'),_0x04cf('0x20')]]})[_0x04cf('0x1d')](function(_0x2b801f){var _0x2f1fcc=0x0;if(_0x2b801f){if(_0x2b801f['countbusyretry']+_0x2b801f[_0x04cf('0x21')]+_0x2b801f[_0x04cf('0x22')]+_0x2b801f[_0x04cf('0x23')]+_0x2b801f[_0x04cf('0x24')]+_0x2b801f['countabandonedretry']+_0x2b801f[_0x04cf('0x25')]+_0x2b801f[_0x04cf('0x26')]<_0x3525d2['entity'][_0x04cf('0x27')])_0x2f1fcc=0x1;_0x3bee15({'additional':_0x2f1fcc});}else{return db[_0x04cf('0x1e')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x551761['id']},'order':[[_0x04cf('0x1f'),'ASC']]})[_0x04cf('0x1d')](function(_0x44143f){var _0x1b064d=0x0;if(_0x44143f){if(_0x44143f[_0x04cf('0x28')]+_0x44143f[_0x04cf('0x21')]+_0x44143f['countnoanswerretry']+_0x44143f['countnosuchnumberretry']+_0x44143f[_0x04cf('0x24')]+_0x44143f[_0x04cf('0x29')]+_0x44143f[_0x04cf('0x25')]+_0x44143f[_0x04cf('0x26')]<_0x3525d2[_0x04cf('0x2a')]['dialGlobalMaxRetry'])_0x1b064d=0x1;_0x3bee15({'additional':_0x1b064d});}else{_0x3bee15({'additional':0x0});}})[_0x04cf('0x15')](function(_0x41fde6){logger[_0x04cf('0x11')](_0x04cf('0x16'),_0x41fde6[_0x04cf('0x14')]);_0x368507(_0x955111['error'](0x1f4,_0x41fde6[_0x04cf('0x14')]));});}})[_0x04cf('0x15')](function(_0x1b63da){logger[_0x04cf('0x11')](_0x04cf('0x16'),_0x1b63da[_0x04cf('0x14')]);_0x368507(_0x955111[_0x04cf('0x11')](0x1f4,_0x1b63da[_0x04cf('0x14')]));});}else _0x3bee15({'additional':0x0});});});};exports[_0x04cf('0x2b')]=function(_0x38adbe){var _0x421ebb=this;return new Promise(function(_0x53b155,_0x4a6caf){return db[_0x04cf('0x2c')][_0x04cf('0x17')]({'raw':!![],'where':{'ContactId':_0x38adbe[_0x04cf('0x18')]['ContactId'],'ListId':_0x38adbe['body'][_0x04cf('0x1a')],'VoiceQueueId':_0x38adbe[_0x04cf('0x18')][_0x04cf('0x1b')]===undefined?null:_0x38adbe[_0x04cf('0x18')][_0x04cf('0x1b')],'CampaignId':_0x38adbe[_0x04cf('0x18')][_0x04cf('0x1c')]===undefined?null:_0x38adbe[_0x04cf('0x18')][_0x04cf('0x1c')]}})[_0x04cf('0x1d')](function(_0x1be0d8){if(_0x1be0d8!=null){return db[_0x04cf('0x1e')][_0x04cf('0x17')]({'raw':!![],'where':{'CmHopperId':_0x1be0d8['id'],'OrderBy':{'$gte':_0x1be0d8[_0x04cf('0x1f')]}},'order':[[_0x04cf('0x1f'),_0x04cf('0x20')]]})['then'](function(_0x213a97){if(_0x213a97)return activateAdditionalPhone(_0x1be0d8,_0x38adbe[_0x04cf('0x18')],_0x213a97,_0x38adbe['duration'],_0x38adbe[_0x04cf('0x2d')])['then'](function(_0x2cdb42){_0x53b155(_0x2cdb42);});else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x1be0d8['id']},'order':[['OrderBy',_0x04cf('0x20')]]})['then'](function(_0x5b52e6){if(_0x5b52e6)return activateAdditionalPhone(_0x1be0d8,_0x38adbe['body'],_0x5b52e6,_0x38adbe['duration'],_0x38adbe[_0x04cf('0x2d')])[_0x04cf('0x1d')](function(_0x767ba6){_0x53b155(_0x767ba6);});else{_0x53b155({'id':_0x1be0d8['id'],'phone':''});}})[_0x04cf('0x15')](function(_0x3d542d){logger[_0x04cf('0x11')](_0x04cf('0x16'),_0x3d542d[_0x04cf('0x14')]);_0x4a6caf(_0x421ebb['error'](0x1f4,_0x3d542d[_0x04cf('0x14')]));});}})['catch'](function(_0x40b95d){logger[_0x04cf('0x11')](_0x04cf('0x16'),_0x40b95d[_0x04cf('0x14')]);_0x4a6caf(_0x421ebb[_0x04cf('0x11')](0x1f4,_0x40b95d[_0x04cf('0x14')]));});}else _0x53b155(0x1);});});};function activateAdditionalPhone(_0x1bea28,_0x2a669b,_0x6af6a1,_0x5a39b9,_0xd309b2){return new Promise(function(_0x4b53d8,_0x48df49){var _0x892813;if(_['isNil'](_0x6af6a1[_0x04cf('0x2e')])){_0x6af6a1[_0x04cf('0x2e')]=moment();}if(moment()>moment(_0x6af6a1[_0x04cf('0x2e')])){_0x892813=moment()[_0x04cf('0x2f')](_0xd309b2||0x3,_0x04cf('0x30'));}else{if(_0x6af6a1[_0x04cf('0x1f')]==0x0){_0x892813=moment(_0x6af6a1[_0x04cf('0x2e')]);}else{_0x892813=moment()[_0x04cf('0x2f')](_0xd309b2||0x3,_0x04cf('0x30'));}}if(_[_0x04cf('0x31')](_0x892813)){_0x892813=moment()[_0x04cf('0x2f')](_0xd309b2||0x3,_0x04cf('0x30'));}var _0x32c151={'phone':_0x1bea28[_0x04cf('0x32')],'active':0x0,'OrderBy':_[_0x04cf('0x31')](_0x1bea28['OrderBy'])?0x0:_0x1bea28['OrderBy'],'scheduledat':moment()[_0x04cf('0x2f')](_0x5a39b9||0x1,_0x04cf('0x30')),'countbusyretry':_0x2a669b[_0x04cf('0x28')],'countcongestionretry':_0x2a669b['countcongestionretry'],'countnoanswerretry':_0x2a669b['countnoanswerretry'],'countnosuchnumberretry':_0x2a669b[_0x04cf('0x23')],'countdropretry':_0x2a669b[_0x04cf('0x24')],'countabandonedretry':_0x2a669b[_0x04cf('0x29')],'countmachineretry':_0x2a669b[_0x04cf('0x25')],'countagentrejectretry':_0x2a669b[_0x04cf('0x26')],'createdAt':_0x2a669b[_0x04cf('0x33')],'updatedAt':_0x2a669b[_0x04cf('0x34')]};var _0x5a6d9d={'CmHopperId':_0x1bea28['id'],'phone':_0x6af6a1['phone'],'active':0x0,'OrderBy':_['isNil'](_0x6af6a1[_0x04cf('0x1f')])?0x0:_0x6af6a1[_0x04cf('0x1f')],'scheduledat':_0x892813,'countbusyretry':_0x6af6a1[_0x04cf('0x28')],'countcongestionretry':_0x6af6a1[_0x04cf('0x21')],'countnoanswerretry':_0x6af6a1[_0x04cf('0x22')],'countnosuchnumberretry':_0x6af6a1[_0x04cf('0x23')],'countdropretry':_0x6af6a1[_0x04cf('0x24')],'countabandonedretry':_0x6af6a1[_0x04cf('0x29')],'countmachineretry':_0x6af6a1[_0x04cf('0x25')],'countagentrejectretry':_0x6af6a1[_0x04cf('0x26')],'createdAt':_0x6af6a1[_0x04cf('0x33')],'updatedAt':_0x6af6a1[_0x04cf('0x34')]};return db[_0x04cf('0x35')][_0x04cf('0x36')](function(_0x59cedb){return db[_0x04cf('0x1e')][_0x04cf('0x37')](_0x32c151,{'where':{'id':_0x6af6a1['id']}},{'transaction':_0x59cedb})[_0x04cf('0x1d')](function(){return db[_0x04cf('0x2c')][_0x04cf('0x37')](_0x5a6d9d,{'where':{'id':_0x1bea28['id']}},{'transaction':_0x59cedb});});})[_0x04cf('0x1d')](function(_0x467e30){_0x4b53d8({'id':_0x1bea28['id'],'phone':_0x6af6a1[_0x04cf('0x32')]});})[_0x04cf('0x15')](function(_0x209e2a){logger[_0x04cf('0x11')](_0x04cf('0x38'),_0x209e2a[_0x04cf('0x14')]);_0x48df49({'error':_0x209e2a[_0x04cf('0x14')]});});});}exports[_0x04cf('0x39')]=function(_0x5d2117){var _0x30e3dc=this;return new Promise(function(_0x388177,_0x3b03b5){return db[_0x04cf('0x2c')][_0x04cf('0x37')](_0x5d2117[_0x04cf('0x18')][_0x04cf('0x3a')],{'where':{'id':_0x5d2117['body']['id']}})[_0x04cf('0x1d')](function(_0x10e906){_0x388177(_0x10e906);})['catch'](function(_0x45fabc){logger['error'](_0x04cf('0x39'),_0x45fabc['message']);_0x3b03b5(_0x30e3dc[_0x04cf('0x11')](0x1f4,_0x45fabc['message']));});});};