Built motion from commit 1efd3d96.|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 _0x4481=['countcongestionretry','countnoanswerretry','countdropretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','findOne','countnosuchnumberretry','SwapAdditionalPhones','ContactId','duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','updatedAt','sequelize','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','then','debug','request\x20sent','stringify','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','info','result','catch','VerifyAdditionalPhones','CmHopper','body','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','ASC','countbusyretry'];(function(_0xb68772,_0x5253ac){var _0x4189bb=function(_0x1b0cf3){while(--_0x1b0cf3){_0xb68772['push'](_0xb68772['shift']());}};_0x4189bb(++_0x5253ac);}(_0x4481,0x141));var _0x1448=function(_0x2a5c87,_0x199f88){_0x2a5c87=_0x2a5c87-0x0;var _0x5d86f3=_0x4481[_0x2a5c87];return _0x5d86f3;};'use strict';var _=require(_0x1448('0x0'));var util=require(_0x1448('0x1'));var moment=require(_0x1448('0x2'));var BPromise=require(_0x1448('0x3'));var rs=require(_0x1448('0x4'));var fs=require('fs');var Redis=require(_0x1448('0x5'));var db=require(_0x1448('0x6'))['db'];var utils=require(_0x1448('0x7'));var logger=require('../../config/logger')(_0x1448('0x8'));var config=require(_0x1448('0x9'));var jayson=require(_0x1448('0xa'));var client=jayson[_0x1448('0xb')][_0x1448('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2415b3,_0x4669f4,_0xc52c0a){return new BPromise(function(_0x202b06,_0x298c4a){return client['request'](_0x2415b3,_0xc52c0a)[_0x1448('0xd')](function(_0x4592fe){logger['info']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x4669f4,'request\x20sent');logger[_0x1448('0xe')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x4669f4,_0x1448('0xf'),JSON[_0x1448('0x10')](_0x4592fe));if(_0x4592fe[_0x1448('0x11')]){if(_0x4592fe['error'][_0x1448('0x12')]===0x1f4){logger['error'](_0x1448('0x13'),_0x4669f4,_0x4592fe[_0x1448('0x11')][_0x1448('0x14')]);return _0x298c4a(_0x4592fe[_0x1448('0x11')]['message']);}logger[_0x1448('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x4669f4,_0x4592fe[_0x1448('0x11')]['message']);return _0x202b06(_0x4592fe[_0x1448('0x11')][_0x1448('0x14')]);}else{logger[_0x1448('0x15')](_0x1448('0x13'),_0x4669f4,_0x1448('0xf'));_0x202b06(_0x4592fe[_0x1448('0x16')][_0x1448('0x14')]);}})[_0x1448('0x17')](function(_0x5b98dc){logger[_0x1448('0x11')](_0x1448('0x13'),_0x4669f4,_0x5b98dc);_0x298c4a(_0x5b98dc);});});}exports[_0x1448('0x18')]=function(_0xbc68b4){var _0x1aef90=this;return new Promise(function(_0x3c028d,_0x1fb8a7){return db[_0x1448('0x19')]['findOne']({'raw':!![],'where':{'ContactId':_0xbc68b4[_0x1448('0x1a')]['ContactId'],'ListId':_0xbc68b4[_0x1448('0x1a')]['ListId'],'VoiceQueueId':_0xbc68b4['body'][_0x1448('0x1b')]===undefined?null:_0xbc68b4[_0x1448('0x1a')][_0x1448('0x1b')],'CampaignId':_0xbc68b4[_0x1448('0x1a')][_0x1448('0x1c')]===undefined?null:_0xbc68b4[_0x1448('0x1a')][_0x1448('0x1c')]}})[_0x1448('0xd')](function(_0x3dff63){if(_0x3dff63!=null){return db[_0x1448('0x1d')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x3dff63['id'],'OrderBy':{'$gt':_0x3dff63[_0x1448('0x1e')]}},'order':[[_0x1448('0x1e'),_0x1448('0x1f')]]})[_0x1448('0xd')](function(_0x590b29){var _0x4259a1=0x0;if(_0x590b29){if(_0x590b29[_0x1448('0x20')]+_0x590b29[_0x1448('0x21')]+_0x590b29[_0x1448('0x22')]+_0x590b29['countnosuchnumberretry']+_0x590b29[_0x1448('0x23')]+_0x590b29['countabandonedretry']+_0x590b29[_0x1448('0x24')]+_0x590b29[_0x1448('0x25')]<_0xbc68b4[_0x1448('0x26')][_0x1448('0x27')])_0x4259a1=0x1;_0x3c028d({'additional':_0x4259a1});}else{return db[_0x1448('0x1d')][_0x1448('0x28')]({'raw':!![],'where':{'CmHopperId':_0x3dff63['id']},'order':[[_0x1448('0x1e'),'ASC']]})['then'](function(_0x2cbece){var _0x161b82=0x0;if(_0x2cbece){if(_0x2cbece[_0x1448('0x20')]+_0x2cbece['countcongestionretry']+_0x2cbece[_0x1448('0x22')]+_0x2cbece[_0x1448('0x29')]+_0x2cbece['countdropretry']+_0x2cbece['countabandonedretry']+_0x2cbece[_0x1448('0x24')]+_0x2cbece[_0x1448('0x25')]<_0xbc68b4[_0x1448('0x26')]['dialGlobalMaxRetry'])_0x161b82=0x1;_0x3c028d({'additional':_0x161b82});}else{_0x3c028d({'additional':0x0});}})[_0x1448('0x17')](function(_0x5db70f){logger[_0x1448('0x11')]('VerifyAdditionalPhones',_0x5db70f[_0x1448('0x14')]);_0x1fb8a7(_0x1aef90[_0x1448('0x11')](0x1f4,_0x5db70f[_0x1448('0x14')]));});}})[_0x1448('0x17')](function(_0x3cd6d1){logger[_0x1448('0x11')](_0x1448('0x18'),_0x3cd6d1[_0x1448('0x14')]);_0x1fb8a7(_0x1aef90[_0x1448('0x11')](0x1f4,_0x3cd6d1[_0x1448('0x14')]));});}else _0x3c028d({'additional':0x0});});});};exports[_0x1448('0x2a')]=function(_0x1c8631){var _0x1f2a4c=this;return new Promise(function(_0x5ddd46,_0x388692){return db[_0x1448('0x19')]['findOne']({'raw':!![],'where':{'ContactId':_0x1c8631['body'][_0x1448('0x2b')],'ListId':_0x1c8631[_0x1448('0x1a')]['ListId'],'VoiceQueueId':_0x1c8631[_0x1448('0x1a')]['VoiceQueueId']===undefined?null:_0x1c8631[_0x1448('0x1a')]['VoiceQueueId'],'CampaignId':_0x1c8631[_0x1448('0x1a')][_0x1448('0x1c')]===undefined?null:_0x1c8631[_0x1448('0x1a')]['CampaignId']}})['then'](function(_0x77667a){if(_0x77667a!=null){return db[_0x1448('0x1d')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x77667a['id'],'OrderBy':{'$gte':_0x77667a[_0x1448('0x1e')]}},'order':[['OrderBy',_0x1448('0x1f')]]})[_0x1448('0xd')](function(_0x36865d){if(_0x36865d)return activateAdditionalPhone(_0x77667a,_0x1c8631[_0x1448('0x1a')],_0x36865d,_0x1c8631[_0x1448('0x2c')],_0x1c8631[_0x1448('0x2d')])[_0x1448('0xd')](function(_0x420883){_0x5ddd46(_0x420883);});else{return db['CmHopperAdditionalPhone'][_0x1448('0x28')]({'raw':!![],'where':{'CmHopperId':_0x77667a['id']},'order':[[_0x1448('0x1e'),_0x1448('0x1f')]]})['then'](function(_0x55ae4d){if(_0x55ae4d)return activateAdditionalPhone(_0x77667a,_0x1c8631['body'],_0x55ae4d,_0x1c8631['duration'],_0x1c8631[_0x1448('0x2d')])[_0x1448('0xd')](function(_0x2c7241){_0x5ddd46(_0x2c7241);});else{_0x5ddd46({'id':_0x77667a['id'],'phone':''});}})[_0x1448('0x17')](function(_0x7709fc){logger[_0x1448('0x11')]('VerifyAdditionalPhones',_0x7709fc[_0x1448('0x14')]);_0x388692(_0x1f2a4c[_0x1448('0x11')](0x1f4,_0x7709fc[_0x1448('0x14')]));});}})[_0x1448('0x17')](function(_0x41f4b2){logger[_0x1448('0x11')](_0x1448('0x18'),_0x41f4b2['message']);_0x388692(_0x1f2a4c['error'](0x1f4,_0x41f4b2[_0x1448('0x14')]));});}else _0x5ddd46(0x1);});});};function activateAdditionalPhone(_0x2f4357,_0x49fbb3,_0x2f0a68,_0x3858ec,_0x446fc1){return new Promise(function(_0x8b1587,_0x18af13){var _0x1f925f;if(_[_0x1448('0x2e')](_0x2f0a68[_0x1448('0x2f')])){_0x2f0a68[_0x1448('0x2f')]=moment();}if(moment()>moment(_0x2f0a68[_0x1448('0x2f')])){_0x1f925f=moment()[_0x1448('0x30')](_0x446fc1||0x3,'minutes');}else{if(_0x2f0a68[_0x1448('0x1e')]==0x0){_0x1f925f=moment(_0x2f0a68['scheduledat']);}else{_0x1f925f=moment()[_0x1448('0x30')](_0x446fc1||0x3,_0x1448('0x31'));}}if(_[_0x1448('0x2e')](_0x1f925f)){_0x1f925f=moment()[_0x1448('0x30')](_0x446fc1||0x3,_0x1448('0x31'));}var _0x2ee4bb={'phone':_0x2f4357[_0x1448('0x32')],'active':0x0,'OrderBy':_[_0x1448('0x2e')](_0x2f4357['OrderBy'])?0x0:_0x2f4357[_0x1448('0x1e')],'scheduledat':moment()[_0x1448('0x30')](_0x3858ec||0x1,'minutes'),'countbusyretry':_0x49fbb3[_0x1448('0x20')],'countcongestionretry':_0x49fbb3[_0x1448('0x21')],'countnoanswerretry':_0x49fbb3[_0x1448('0x22')],'countnosuchnumberretry':_0x49fbb3[_0x1448('0x29')],'countdropretry':_0x49fbb3[_0x1448('0x23')],'countabandonedretry':_0x49fbb3['countabandonedretry'],'countmachineretry':_0x49fbb3[_0x1448('0x24')],'countagentrejectretry':_0x49fbb3[_0x1448('0x25')],'createdAt':_0x49fbb3[_0x1448('0x33')],'updatedAt':_0x49fbb3[_0x1448('0x34')]};var _0x113148={'CmHopperId':_0x2f4357['id'],'phone':_0x2f0a68[_0x1448('0x32')],'active':0x0,'OrderBy':_[_0x1448('0x2e')](_0x2f0a68[_0x1448('0x1e')])?0x0:_0x2f0a68[_0x1448('0x1e')],'scheduledat':_0x1f925f,'countbusyretry':_0x2f0a68[_0x1448('0x20')],'countcongestionretry':_0x2f0a68[_0x1448('0x21')],'countnoanswerretry':_0x2f0a68[_0x1448('0x22')],'countnosuchnumberretry':_0x2f0a68['countnosuchnumberretry'],'countdropretry':_0x2f0a68[_0x1448('0x23')],'countabandonedretry':_0x2f0a68['countabandonedretry'],'countmachineretry':_0x2f0a68[_0x1448('0x24')],'countagentrejectretry':_0x2f0a68[_0x1448('0x25')],'createdAt':_0x2f0a68['createdAt'],'updatedAt':_0x2f0a68[_0x1448('0x34')]};return db[_0x1448('0x35')][_0x1448('0x36')](function(_0x5521a7){return db[_0x1448('0x1d')][_0x1448('0x37')](_0x2ee4bb,{'where':{'id':_0x2f0a68['id']}},{'transaction':_0x5521a7})['then'](function(){return db['CmHopper'][_0x1448('0x37')](_0x113148,{'where':{'id':_0x2f4357['id']}},{'transaction':_0x5521a7});});})[_0x1448('0xd')](function(_0x2f6846){_0x8b1587({'id':_0x2f4357['id'],'phone':_0x2f0a68[_0x1448('0x32')]});})[_0x1448('0x17')](function(_0x952f14){logger[_0x1448('0x11')](_0x1448('0x38'),_0x952f14['message']);_0x18af13({'error':_0x952f14['message']});});});}exports[_0x1448('0x39')]=function(_0x3eaf14){var _0x569556=this;return new Promise(function(_0x10bf52,_0x27ebfa){return db[_0x1448('0x19')][_0x1448('0x37')](_0x3eaf14['body'][_0x1448('0x3a')],{'where':{'id':_0x3eaf14[_0x1448('0x1a')]['id']}})[_0x1448('0xd')](function(_0xfa082d){_0x10bf52(_0xfa082d);})[_0x1448('0x17')](function(_0x25743d){logger['error']('IncrementPreviewCounters',_0x25743d[_0x1448('0x14')]);_0x27ebfa(_0x569556['error'](0x1f4,_0x25743d['message']));});});};