Built motion from commit b9b02fed.|2.6.5
[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 _0x1929=['minutes','createdAt','updatedAt','phone','sequelize','transaction','update','IncrementPreviewCounters','field','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','jayson/promise','http','then','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','CmHopper','body','ContactId','ListId','VoiceQueueId','findOne','OrderBy','ASC','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','countnoanswerretry','countmachineretry','VerifyAdditionalPhones','SwapAdditionalPhones','CampaignId','CmHopperAdditionalPhone','duration','waitTime','isNil','scheduledat','add'];(function(_0x242be6,_0xd06874){var _0x52462e=function(_0x58de4f){while(--_0x58de4f){_0x242be6['push'](_0x242be6['shift']());}};_0x52462e(++_0xd06874);}(_0x1929,0x77));var _0x9192=function(_0x137d1d,_0x35c663){_0x137d1d=_0x137d1d-0x0;var _0x485108=_0x1929[_0x137d1d];return _0x485108;};'use strict';var _=require(_0x9192('0x0'));var util=require(_0x9192('0x1'));var moment=require(_0x9192('0x2'));var BPromise=require(_0x9192('0x3'));var rs=require(_0x9192('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9192('0x5'))['db'];var utils=require(_0x9192('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x9192('0x7'));var client=jayson['client'][_0x9192('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x17f592,_0x5ea209,_0x33d47b){return new BPromise(function(_0x528a6d,_0xf9f40c){return client['request'](_0x17f592,_0x33d47b)[_0x9192('0x9')](function(_0x172014){logger['info'](_0x9192('0xa'),_0x5ea209,_0x9192('0xb'));logger['debug'](_0x9192('0xc'),_0x5ea209,_0x9192('0xb'),JSON[_0x9192('0xd')](_0x172014));if(_0x172014[_0x9192('0xe')]){if(_0x172014[_0x9192('0xe')][_0x9192('0xf')]===0x1f4){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5ea209,_0x172014[_0x9192('0xe')][_0x9192('0x10')]);return _0xf9f40c(_0x172014['error'][_0x9192('0x10')]);}logger[_0x9192('0xe')](_0x9192('0xa'),_0x5ea209,_0x172014[_0x9192('0xe')][_0x9192('0x10')]);return _0x528a6d(_0x172014[_0x9192('0xe')]['message']);}else{logger[_0x9192('0x11')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5ea209,'request\x20sent');_0x528a6d(_0x172014[_0x9192('0x12')]['message']);}})[_0x9192('0x13')](function(_0x424b9c){logger[_0x9192('0xe')](_0x9192('0xa'),_0x5ea209,_0x424b9c);_0xf9f40c(_0x424b9c);});});}exports['VerifyAdditionalPhones']=function(_0x163e82){var _0x24f967=this;return new Promise(function(_0x3160b6,_0x46d8eb){return db[_0x9192('0x14')]['findOne']({'raw':!![],'where':{'ContactId':_0x163e82[_0x9192('0x15')][_0x9192('0x16')],'ListId':_0x163e82[_0x9192('0x15')][_0x9192('0x17')],'VoiceQueueId':_0x163e82[_0x9192('0x15')]['VoiceQueueId']===undefined?null:_0x163e82[_0x9192('0x15')][_0x9192('0x18')],'CampaignId':_0x163e82[_0x9192('0x15')]['CampaignId']===undefined?null:_0x163e82[_0x9192('0x15')]['CampaignId']}})[_0x9192('0x9')](function(_0x4edb08){if(_0x4edb08!=null){return db['CmHopperAdditionalPhone'][_0x9192('0x19')]({'raw':!![],'where':{'CmHopperId':_0x4edb08['id'],'OrderBy':{'$gt':_0x4edb08[_0x9192('0x1a')]}},'order':[[_0x9192('0x1a'),_0x9192('0x1b')]]})['then'](function(_0x30f166){var _0x55f0e2=0x0;if(_0x30f166){if(_0x30f166[_0x9192('0x1c')]+_0x30f166[_0x9192('0x1d')]+_0x30f166['countnoanswerretry']+_0x30f166[_0x9192('0x1e')]+_0x30f166[_0x9192('0x1f')]+_0x30f166[_0x9192('0x20')]+_0x30f166['countmachineretry']+_0x30f166[_0x9192('0x21')]<_0x163e82['entity'][_0x9192('0x22')])_0x55f0e2=0x1;_0x3160b6({'additional':_0x55f0e2});}else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x4edb08['id']},'order':[['OrderBy',_0x9192('0x1b')]]})['then'](function(_0x28ba9c){var _0x199914=0x0;if(_0x28ba9c){if(_0x28ba9c[_0x9192('0x1c')]+_0x28ba9c[_0x9192('0x1d')]+_0x28ba9c[_0x9192('0x23')]+_0x28ba9c[_0x9192('0x1e')]+_0x28ba9c['countdropretry']+_0x28ba9c[_0x9192('0x20')]+_0x28ba9c[_0x9192('0x24')]+_0x28ba9c['countagentrejectretry']<_0x163e82['entity']['dialGlobalMaxRetry'])_0x199914=0x1;_0x3160b6({'additional':_0x199914});}else{_0x3160b6({'additional':0x0});}})[_0x9192('0x13')](function(_0x531106){logger[_0x9192('0xe')](_0x9192('0x25'),_0x531106[_0x9192('0x10')]);_0x46d8eb(_0x24f967[_0x9192('0xe')](0x1f4,_0x531106[_0x9192('0x10')]));});}})[_0x9192('0x13')](function(_0x473ccc){logger[_0x9192('0xe')](_0x9192('0x25'),_0x473ccc['message']);_0x46d8eb(_0x24f967[_0x9192('0xe')](0x1f4,_0x473ccc['message']));});}else _0x3160b6({'additional':0x0});});});};exports[_0x9192('0x26')]=function(_0x4df404){var _0x15281f=this;return new Promise(function(_0x1f2d6c,_0x14b0d4){return db[_0x9192('0x14')]['findOne']({'raw':!![],'where':{'ContactId':_0x4df404[_0x9192('0x15')][_0x9192('0x16')],'ListId':_0x4df404['body'][_0x9192('0x17')],'VoiceQueueId':_0x4df404[_0x9192('0x15')][_0x9192('0x18')]===undefined?null:_0x4df404[_0x9192('0x15')][_0x9192('0x18')],'CampaignId':_0x4df404['body'][_0x9192('0x27')]===undefined?null:_0x4df404[_0x9192('0x15')]['CampaignId']}})[_0x9192('0x9')](function(_0x5ee600){if(_0x5ee600!=null){return db[_0x9192('0x28')]['findOne']({'raw':!![],'where':{'CmHopperId':_0x5ee600['id'],'OrderBy':{'$gte':_0x5ee600['OrderBy']}},'order':[['OrderBy','ASC']]})['then'](function(_0x386c8b){if(_0x386c8b)return activateAdditionalPhone(_0x5ee600,_0x4df404[_0x9192('0x15')],_0x386c8b,_0x4df404[_0x9192('0x29')],_0x4df404[_0x9192('0x2a')])[_0x9192('0x9')](function(_0x4c0e54){_0x1f2d6c(_0x4c0e54);});else{return db['CmHopperAdditionalPhone'][_0x9192('0x19')]({'raw':!![],'where':{'CmHopperId':_0x5ee600['id']},'order':[[_0x9192('0x1a'),_0x9192('0x1b')]]})[_0x9192('0x9')](function(_0xd8ec7a){if(_0xd8ec7a)return activateAdditionalPhone(_0x5ee600,_0x4df404[_0x9192('0x15')],_0xd8ec7a,_0x4df404[_0x9192('0x29')],_0x4df404['waitTime'])[_0x9192('0x9')](function(_0x348959){_0x1f2d6c(_0x348959);});else{_0x1f2d6c({'id':_0x5ee600['id'],'phone':''});}})[_0x9192('0x13')](function(_0x6bb229){logger['error'](_0x9192('0x25'),_0x6bb229[_0x9192('0x10')]);_0x14b0d4(_0x15281f[_0x9192('0xe')](0x1f4,_0x6bb229['message']));});}})[_0x9192('0x13')](function(_0x413759){logger[_0x9192('0xe')](_0x9192('0x25'),_0x413759[_0x9192('0x10')]);_0x14b0d4(_0x15281f[_0x9192('0xe')](0x1f4,_0x413759[_0x9192('0x10')]));});}else _0x1f2d6c(0x1);});});};function activateAdditionalPhone(_0x166456,_0x460666,_0xbd4983,_0x58a893,_0x24baf0){return new Promise(function(_0x41132f,_0x54dc8d){var _0x257d07;if(_[_0x9192('0x2b')](_0xbd4983['scheduledat'])){_0xbd4983[_0x9192('0x2c')]=moment();}if(moment()>moment(_0xbd4983['scheduledat'])){_0x257d07=moment()[_0x9192('0x2d')](_0x24baf0||0x3,_0x9192('0x2e'));}else{if(_0xbd4983[_0x9192('0x1a')]==0x0){_0x257d07=moment(_0xbd4983['scheduledat']);}else{_0x257d07=moment()[_0x9192('0x2d')](_0x24baf0||0x3,'minutes');}}if(_['isNil'](_0x257d07)){_0x257d07=moment()[_0x9192('0x2d')](_0x24baf0||0x3,_0x9192('0x2e'));}var _0xd47faf={'phone':_0x166456['phone'],'active':0x0,'OrderBy':_[_0x9192('0x2b')](_0x166456[_0x9192('0x1a')])?0x0:_0x166456['OrderBy'],'scheduledat':moment()[_0x9192('0x2d')](_0x58a893||0x1,'minutes'),'countbusyretry':_0x460666['countbusyretry'],'countcongestionretry':_0x460666[_0x9192('0x1d')],'countnoanswerretry':_0x460666[_0x9192('0x23')],'countnosuchnumberretry':_0x460666[_0x9192('0x1e')],'countdropretry':_0x460666['countdropretry'],'countabandonedretry':_0x460666[_0x9192('0x20')],'countmachineretry':_0x460666[_0x9192('0x24')],'countagentrejectretry':_0x460666[_0x9192('0x21')],'createdAt':_0x460666[_0x9192('0x2f')],'updatedAt':_0x460666[_0x9192('0x30')]};var _0x1e36d9={'CmHopperId':_0x166456['id'],'phone':_0xbd4983[_0x9192('0x31')],'active':0x0,'OrderBy':_[_0x9192('0x2b')](_0xbd4983[_0x9192('0x1a')])?0x0:_0xbd4983[_0x9192('0x1a')],'scheduledat':_0x257d07,'countbusyretry':_0xbd4983['countbusyretry'],'countcongestionretry':_0xbd4983[_0x9192('0x1d')],'countnoanswerretry':_0xbd4983[_0x9192('0x23')],'countnosuchnumberretry':_0xbd4983[_0x9192('0x1e')],'countdropretry':_0xbd4983[_0x9192('0x1f')],'countabandonedretry':_0xbd4983[_0x9192('0x20')],'countmachineretry':_0xbd4983[_0x9192('0x24')],'countagentrejectretry':_0xbd4983[_0x9192('0x21')],'createdAt':_0xbd4983[_0x9192('0x2f')],'updatedAt':_0xbd4983[_0x9192('0x30')]};return db[_0x9192('0x32')][_0x9192('0x33')](function(_0x13e4cd){return db[_0x9192('0x28')][_0x9192('0x34')](_0xd47faf,{'where':{'id':_0xbd4983['id']}},{'transaction':_0x13e4cd})[_0x9192('0x9')](function(){return db[_0x9192('0x14')]['update'](_0x1e36d9,{'where':{'id':_0x166456['id']}},{'transaction':_0x13e4cd});});})['then'](function(_0x5b6862){_0x41132f({'id':_0x166456['id'],'phone':_0xbd4983[_0x9192('0x31')]});})['catch'](function(_0x14babf){logger[_0x9192('0xe')]('activateAdditionalPhone',_0x14babf[_0x9192('0x10')]);_0x54dc8d({'error':_0x14babf[_0x9192('0x10')]});});});}exports[_0x9192('0x35')]=function(_0x24e5df){var _0x31f91f=this;return new Promise(function(_0x55495e,_0x207eac){return db[_0x9192('0x14')][_0x9192('0x34')](_0x24e5df[_0x9192('0x15')][_0x9192('0x36')],{'where':{'id':_0x24e5df[_0x9192('0x15')]['id']}})['then'](function(_0x3bd613){_0x55495e(_0x3bd613);})[_0x9192('0x13')](function(_0x1d8c62){logger[_0x9192('0xe')]('IncrementPreviewCounters',_0x1d8c62[_0x9192('0x10')]);_0x207eac(_0x31f91f[_0x9192('0xe')](0x1f4,_0x1d8c62[_0x9192('0x10')]));});});};