Built motion from commit 97153652.|2.6.26
[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 _0x1150=['message','catch','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','then','CmHopperAdditionalPhone','OrderBy','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','entity','dialGlobalMaxRetry','ASC','countdropretry','VerifyAdditionalPhones','SwapAdditionalPhones','duration','waitTime','isNil','scheduledat','add','minutes','phone','createdAt','updatedAt','countagentrejectretry','sequelize','transaction','update','activateAdditionalPhone','field','IncrementPreviewCounters','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','info','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','CmHopperAdditionalPhone,\x20%s,\x20%s'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x1150,0x14f));var _0x0115=function(_0xf3120,_0x80a54c){_0xf3120=_0xf3120-0x0;var _0x5aa549=_0x1150[_0xf3120];return _0x5aa549;};'use strict';var _=require(_0x0115('0x0'));var util=require(_0x0115('0x1'));var moment=require(_0x0115('0x2'));var BPromise=require(_0x0115('0x3'));var rs=require(_0x0115('0x4'));var fs=require('fs');var Redis=require(_0x0115('0x5'));var db=require(_0x0115('0x6'))['db'];var utils=require(_0x0115('0x7'));var logger=require(_0x0115('0x8'))('rpc');var config=require(_0x0115('0x9'));var jayson=require(_0x0115('0xa'));var client=jayson['client'][_0x0115('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4c4ed2,_0x2d34cb,_0xe3a497){return new BPromise(function(_0x235403,_0x3cd134){return client['request'](_0x4c4ed2,_0xe3a497)['then'](function(_0x135a1e){logger[_0x0115('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2d34cb,_0x0115('0xd'));logger[_0x0115('0xe')](_0x0115('0xf'),_0x2d34cb,_0x0115('0xd'),JSON[_0x0115('0x10')](_0x135a1e));if(_0x135a1e[_0x0115('0x11')]){if(_0x135a1e[_0x0115('0x11')]['code']===0x1f4){logger['error'](_0x0115('0x12'),_0x2d34cb,_0x135a1e[_0x0115('0x11')]['message']);return _0x3cd134(_0x135a1e[_0x0115('0x11')][_0x0115('0x13')]);}logger[_0x0115('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x2d34cb,_0x135a1e['error']['message']);return _0x235403(_0x135a1e['error'][_0x0115('0x13')]);}else{logger[_0x0115('0xc')](_0x0115('0x12'),_0x2d34cb,_0x0115('0xd'));_0x235403(_0x135a1e['result'][_0x0115('0x13')]);}})[_0x0115('0x14')](function(_0x44a01a){logger[_0x0115('0x11')](_0x0115('0x12'),_0x2d34cb,_0x44a01a);_0x3cd134(_0x44a01a);});});}exports['VerifyAdditionalPhones']=function(_0x5ab623){var _0x510ff0=this;return new Promise(function(_0x253f31,_0x2299aa){return db[_0x0115('0x15')][_0x0115('0x16')]({'raw':!![],'where':{'ContactId':_0x5ab623[_0x0115('0x17')][_0x0115('0x18')],'ListId':_0x5ab623['body'][_0x0115('0x19')],'VoiceQueueId':_0x5ab623[_0x0115('0x17')][_0x0115('0x1a')]===undefined?null:_0x5ab623[_0x0115('0x17')][_0x0115('0x1a')],'CampaignId':_0x5ab623[_0x0115('0x17')][_0x0115('0x1b')]===undefined?null:_0x5ab623[_0x0115('0x17')]['CampaignId']}})[_0x0115('0x1c')](function(_0x6d8a6e){if(_0x6d8a6e!=null){return db[_0x0115('0x1d')][_0x0115('0x16')]({'raw':!![],'where':{'CmHopperId':_0x6d8a6e['id'],'OrderBy':{'$gt':_0x6d8a6e[_0x0115('0x1e')]}},'order':[[_0x0115('0x1e'),'ASC']]})[_0x0115('0x1c')](function(_0x451822){var _0x4e4430=0x0;if(_0x451822){if(_0x451822[_0x0115('0x1f')]+_0x451822[_0x0115('0x20')]+_0x451822[_0x0115('0x21')]+_0x451822[_0x0115('0x22')]+_0x451822['countdropretry']+_0x451822[_0x0115('0x23')]+_0x451822[_0x0115('0x24')]+_0x451822['countagentrejectretry']<_0x5ab623[_0x0115('0x25')][_0x0115('0x26')])_0x4e4430=0x1;_0x253f31({'additional':_0x4e4430});}else{return db[_0x0115('0x1d')][_0x0115('0x16')]({'raw':!![],'where':{'CmHopperId':_0x6d8a6e['id']},'order':[['OrderBy',_0x0115('0x27')]]})[_0x0115('0x1c')](function(_0x434898){var _0x1fd7cc=0x0;if(_0x434898){if(_0x434898['countbusyretry']+_0x434898[_0x0115('0x20')]+_0x434898[_0x0115('0x21')]+_0x434898[_0x0115('0x22')]+_0x434898[_0x0115('0x28')]+_0x434898[_0x0115('0x23')]+_0x434898[_0x0115('0x24')]+_0x434898['countagentrejectretry']<_0x5ab623[_0x0115('0x25')][_0x0115('0x26')])_0x1fd7cc=0x1;_0x253f31({'additional':_0x1fd7cc});}else{_0x253f31({'additional':0x0});}})[_0x0115('0x14')](function(_0x35ee67){logger['error'](_0x0115('0x29'),_0x35ee67['message']);_0x2299aa(_0x510ff0[_0x0115('0x11')](0x1f4,_0x35ee67['message']));});}})[_0x0115('0x14')](function(_0x359c0f){logger[_0x0115('0x11')](_0x0115('0x29'),_0x359c0f[_0x0115('0x13')]);_0x2299aa(_0x510ff0['error'](0x1f4,_0x359c0f[_0x0115('0x13')]));});}else _0x253f31({'additional':0x0});});});};exports[_0x0115('0x2a')]=function(_0x206b82){var _0x23a9b7=this;return new Promise(function(_0x388cd9,_0x2282fc){return db[_0x0115('0x15')][_0x0115('0x16')]({'raw':!![],'where':{'ContactId':_0x206b82[_0x0115('0x17')][_0x0115('0x18')],'ListId':_0x206b82[_0x0115('0x17')][_0x0115('0x19')],'VoiceQueueId':_0x206b82['body'][_0x0115('0x1a')]===undefined?null:_0x206b82[_0x0115('0x17')]['VoiceQueueId'],'CampaignId':_0x206b82[_0x0115('0x17')]['CampaignId']===undefined?null:_0x206b82[_0x0115('0x17')][_0x0115('0x1b')]}})[_0x0115('0x1c')](function(_0x253145){if(_0x253145!=null){return db[_0x0115('0x1d')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x253145['id'],'OrderBy':{'$gte':_0x253145[_0x0115('0x1e')]}},'order':[[_0x0115('0x1e'),'ASC']]})[_0x0115('0x1c')](function(_0x5711a2){if(_0x5711a2)return activateAdditionalPhone(_0x253145,_0x206b82[_0x0115('0x17')],_0x5711a2,_0x206b82[_0x0115('0x2b')],_0x206b82[_0x0115('0x2c')])[_0x0115('0x1c')](function(_0x2b5b06){_0x388cd9(_0x2b5b06);});else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x253145['id']},'order':[[_0x0115('0x1e'),'ASC']]})[_0x0115('0x1c')](function(_0xeaa922){if(_0xeaa922)return activateAdditionalPhone(_0x253145,_0x206b82['body'],_0xeaa922,_0x206b82[_0x0115('0x2b')],_0x206b82[_0x0115('0x2c')])['then'](function(_0x39bf39){_0x388cd9(_0x39bf39);});else{_0x388cd9({'id':_0x253145['id'],'phone':''});}})[_0x0115('0x14')](function(_0x2eb77b){logger[_0x0115('0x11')]('VerifyAdditionalPhones',_0x2eb77b[_0x0115('0x13')]);_0x2282fc(_0x23a9b7[_0x0115('0x11')](0x1f4,_0x2eb77b['message']));});}})[_0x0115('0x14')](function(_0x405546){logger[_0x0115('0x11')](_0x0115('0x29'),_0x405546[_0x0115('0x13')]);_0x2282fc(_0x23a9b7[_0x0115('0x11')](0x1f4,_0x405546[_0x0115('0x13')]));});}else _0x388cd9(0x1);});});};function activateAdditionalPhone(_0xf9d8ea,_0x4fc55c,_0x412040,_0x41eb1d,_0xeca450){return new Promise(function(_0x1dcb7a,_0xb375d9){var _0x16501f;if(_[_0x0115('0x2d')](_0x412040[_0x0115('0x2e')])){_0x412040[_0x0115('0x2e')]=moment();}if(moment()>moment(_0x412040['scheduledat'])){_0x16501f=moment()[_0x0115('0x2f')](_0xeca450||0x3,_0x0115('0x30'));}else{if(_0x412040['OrderBy']==0x0){_0x16501f=moment(_0x412040[_0x0115('0x2e')]);}else{_0x16501f=moment()[_0x0115('0x2f')](_0xeca450||0x3,_0x0115('0x30'));}}if(_[_0x0115('0x2d')](_0x16501f)){_0x16501f=moment()['add'](_0xeca450||0x3,_0x0115('0x30'));}var _0x45f012={'phone':_0xf9d8ea[_0x0115('0x31')],'active':0x0,'OrderBy':_[_0x0115('0x2d')](_0xf9d8ea['OrderBy'])?0x0:_0xf9d8ea[_0x0115('0x1e')],'scheduledat':moment()[_0x0115('0x2f')](_0x41eb1d||0x1,_0x0115('0x30')),'countbusyretry':_0x4fc55c['countbusyretry'],'countcongestionretry':_0x4fc55c['countcongestionretry'],'countnoanswerretry':_0x4fc55c[_0x0115('0x21')],'countnosuchnumberretry':_0x4fc55c[_0x0115('0x22')],'countdropretry':_0x4fc55c[_0x0115('0x28')],'countabandonedretry':_0x4fc55c[_0x0115('0x23')],'countmachineretry':_0x4fc55c['countmachineretry'],'countagentrejectretry':_0x4fc55c['countagentrejectretry'],'createdAt':_0x4fc55c[_0x0115('0x32')],'updatedAt':_0x4fc55c[_0x0115('0x33')]};var _0x47a285={'CmHopperId':_0xf9d8ea['id'],'phone':_0x412040['phone'],'active':0x0,'OrderBy':_[_0x0115('0x2d')](_0x412040['OrderBy'])?0x0:_0x412040[_0x0115('0x1e')],'scheduledat':_0x16501f,'countbusyretry':_0x412040['countbusyretry'],'countcongestionretry':_0x412040['countcongestionretry'],'countnoanswerretry':_0x412040[_0x0115('0x21')],'countnosuchnumberretry':_0x412040[_0x0115('0x22')],'countdropretry':_0x412040['countdropretry'],'countabandonedretry':_0x412040[_0x0115('0x23')],'countmachineretry':_0x412040[_0x0115('0x24')],'countagentrejectretry':_0x412040[_0x0115('0x34')],'createdAt':_0x412040[_0x0115('0x32')],'updatedAt':_0x412040[_0x0115('0x33')]};return db[_0x0115('0x35')][_0x0115('0x36')](function(_0x26d4e8){return db[_0x0115('0x1d')][_0x0115('0x37')](_0x45f012,{'where':{'id':_0x412040['id']}},{'transaction':_0x26d4e8})[_0x0115('0x1c')](function(){return db[_0x0115('0x15')][_0x0115('0x37')](_0x47a285,{'where':{'id':_0xf9d8ea['id']}},{'transaction':_0x26d4e8});});})[_0x0115('0x1c')](function(_0x1f4caa){_0x1dcb7a({'id':_0xf9d8ea['id'],'phone':_0x412040[_0x0115('0x31')]});})['catch'](function(_0x2eda78){logger[_0x0115('0x11')](_0x0115('0x38'),_0x2eda78[_0x0115('0x13')]);_0xb375d9({'error':_0x2eda78['message']});});});}exports['IncrementPreviewCounters']=function(_0x2ebf5f){var _0xa449ad=this;return new Promise(function(_0x287d03,_0x4519c5){return db[_0x0115('0x15')][_0x0115('0x37')](_0x2ebf5f['body'][_0x0115('0x39')],{'where':{'id':_0x2ebf5f[_0x0115('0x17')]['id']}})['then'](function(_0xbd68a0){_0x287d03(_0xbd68a0);})[_0x0115('0x14')](function(_0x3ab068){logger[_0x0115('0x11')](_0x0115('0x3a'),_0x3ab068[_0x0115('0x13')]);_0x4519c5(_0xa449ad[_0x0115('0x11')](0x1f4,_0x3ab068[_0x0115('0x13')]));});});};