Built motion from commit bab6f49e.|2.6.17
[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 _0x80a1=['OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry','entity','dialGlobalMaxRetry','ContactId','waitTime','duration','scheduledat','minutes','add','isNil','phone','countmachineretry','createdAt','updatedAt','sequelize','update','activateAdditionalPhone','field','IncrementPreviewCounters','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','jayson/promise','client','request','then','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0x80a1,0x8b));var _0x180a=function(_0x218ca4,_0x41cc40){_0x218ca4=_0x218ca4-0x0;var _0x1b3ff9=_0x80a1[_0x218ca4];return _0x1b3ff9;};'use strict';var _=require(_0x180a('0x0'));var util=require(_0x180a('0x1'));var moment=require(_0x180a('0x2'));var BPromise=require(_0x180a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x180a('0x4'));var db=require(_0x180a('0x5'))['db'];var utils=require(_0x180a('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x180a('0x7'));var client=jayson[_0x180a('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2d9874,_0x598000,_0x3e6475){return new BPromise(function(_0x1dfdd1,_0x5a2e73){return client[_0x180a('0x9')](_0x2d9874,_0x3e6475)[_0x180a('0xa')](function(_0xcc018){logger['info'](_0x180a('0xb'),_0x598000,_0x180a('0xc'));logger['debug'](_0x180a('0xd'),_0x598000,_0x180a('0xc'),JSON[_0x180a('0xe')](_0xcc018));if(_0xcc018['error']){if(_0xcc018['error'][_0x180a('0xf')]===0x1f4){logger[_0x180a('0x10')](_0x180a('0xb'),_0x598000,_0xcc018[_0x180a('0x10')][_0x180a('0x11')]);return _0x5a2e73(_0xcc018[_0x180a('0x10')][_0x180a('0x11')]);}logger[_0x180a('0x10')](_0x180a('0xb'),_0x598000,_0xcc018[_0x180a('0x10')][_0x180a('0x11')]);return _0x1dfdd1(_0xcc018[_0x180a('0x10')][_0x180a('0x11')]);}else{logger[_0x180a('0x12')](_0x180a('0xb'),_0x598000,_0x180a('0xc'));_0x1dfdd1(_0xcc018[_0x180a('0x13')][_0x180a('0x11')]);}})[_0x180a('0x14')](function(_0x5dcc3e){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x598000,_0x5dcc3e);_0x5a2e73(_0x5dcc3e);});});}exports[_0x180a('0x15')]=function(_0x6e7237){var _0x51ffd4=this;return new Promise(function(_0x5d04ac,_0x5806c1){return db[_0x180a('0x16')][_0x180a('0x17')]({'raw':!![],'where':{'ContactId':_0x6e7237[_0x180a('0x18')]['ContactId'],'ListId':_0x6e7237[_0x180a('0x18')][_0x180a('0x19')],'VoiceQueueId':_0x6e7237[_0x180a('0x18')]['VoiceQueueId']===undefined?null:_0x6e7237[_0x180a('0x18')][_0x180a('0x1a')],'CampaignId':_0x6e7237[_0x180a('0x18')][_0x180a('0x1b')]===undefined?null:_0x6e7237['body']['CampaignId']}})[_0x180a('0xa')](function(_0x4c0011){if(_0x4c0011!=null){return db[_0x180a('0x1c')][_0x180a('0x17')]({'raw':!![],'where':{'CmHopperId':_0x4c0011['id'],'OrderBy':{'$gt':_0x4c0011['OrderBy']}},'order':[[_0x180a('0x1d'),_0x180a('0x1e')]]})[_0x180a('0xa')](function(_0xff9f1e){var _0x57efa0=0x0;if(_0xff9f1e){if(_0xff9f1e[_0x180a('0x1f')]+_0xff9f1e[_0x180a('0x20')]+_0xff9f1e[_0x180a('0x21')]+_0xff9f1e[_0x180a('0x22')]+_0xff9f1e[_0x180a('0x23')]+_0xff9f1e[_0x180a('0x24')]+_0xff9f1e['countmachineretry']+_0xff9f1e[_0x180a('0x25')]<_0x6e7237[_0x180a('0x26')][_0x180a('0x27')])_0x57efa0=0x1;_0x5d04ac({'additional':_0x57efa0});}else{return db[_0x180a('0x1c')][_0x180a('0x17')]({'raw':!![],'where':{'CmHopperId':_0x4c0011['id']},'order':[[_0x180a('0x1d'),'ASC']]})[_0x180a('0xa')](function(_0x386ec4){var _0x1fbb38=0x0;if(_0x386ec4){if(_0x386ec4[_0x180a('0x1f')]+_0x386ec4[_0x180a('0x20')]+_0x386ec4['countnoanswerretry']+_0x386ec4[_0x180a('0x22')]+_0x386ec4[_0x180a('0x23')]+_0x386ec4['countabandonedretry']+_0x386ec4['countmachineretry']+_0x386ec4[_0x180a('0x25')]<_0x6e7237[_0x180a('0x26')]['dialGlobalMaxRetry'])_0x1fbb38=0x1;_0x5d04ac({'additional':_0x1fbb38});}else{_0x5d04ac({'additional':0x0});}})[_0x180a('0x14')](function(_0x5756b3){logger['error'](_0x180a('0x15'),_0x5756b3[_0x180a('0x11')]);_0x5806c1(_0x51ffd4[_0x180a('0x10')](0x1f4,_0x5756b3[_0x180a('0x11')]));});}})['catch'](function(_0x1a711b){logger['error'](_0x180a('0x15'),_0x1a711b[_0x180a('0x11')]);_0x5806c1(_0x51ffd4[_0x180a('0x10')](0x1f4,_0x1a711b[_0x180a('0x11')]));});}else _0x5d04ac({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x2e5c61){var _0x33e080=this;return new Promise(function(_0x3043be,_0x2bf93b){return db['CmHopper']['findOne']({'raw':!![],'where':{'ContactId':_0x2e5c61[_0x180a('0x18')][_0x180a('0x28')],'ListId':_0x2e5c61[_0x180a('0x18')][_0x180a('0x19')],'VoiceQueueId':_0x2e5c61[_0x180a('0x18')][_0x180a('0x1a')]===undefined?null:_0x2e5c61[_0x180a('0x18')][_0x180a('0x1a')],'CampaignId':_0x2e5c61[_0x180a('0x18')]['CampaignId']===undefined?null:_0x2e5c61[_0x180a('0x18')]['CampaignId']}})[_0x180a('0xa')](function(_0x598d10){if(_0x598d10!=null){return db[_0x180a('0x1c')][_0x180a('0x17')]({'raw':!![],'where':{'CmHopperId':_0x598d10['id'],'OrderBy':{'$gte':_0x598d10[_0x180a('0x1d')]}},'order':[[_0x180a('0x1d'),_0x180a('0x1e')]]})[_0x180a('0xa')](function(_0x552701){if(_0x552701)return activateAdditionalPhone(_0x598d10,_0x2e5c61[_0x180a('0x18')],_0x552701,_0x2e5c61['duration'],_0x2e5c61[_0x180a('0x29')])[_0x180a('0xa')](function(_0x4cbbda){_0x3043be(_0x4cbbda);});else{return db[_0x180a('0x1c')][_0x180a('0x17')]({'raw':!![],'where':{'CmHopperId':_0x598d10['id']},'order':[[_0x180a('0x1d'),_0x180a('0x1e')]]})[_0x180a('0xa')](function(_0x23ddbb){if(_0x23ddbb)return activateAdditionalPhone(_0x598d10,_0x2e5c61[_0x180a('0x18')],_0x23ddbb,_0x2e5c61[_0x180a('0x2a')],_0x2e5c61[_0x180a('0x29')])[_0x180a('0xa')](function(_0x1e9437){_0x3043be(_0x1e9437);});else{_0x3043be({'id':_0x598d10['id'],'phone':''});}})[_0x180a('0x14')](function(_0x39391f){logger[_0x180a('0x10')]('VerifyAdditionalPhones',_0x39391f['message']);_0x2bf93b(_0x33e080['error'](0x1f4,_0x39391f[_0x180a('0x11')]));});}})[_0x180a('0x14')](function(_0x5aa255){logger['error'](_0x180a('0x15'),_0x5aa255[_0x180a('0x11')]);_0x2bf93b(_0x33e080['error'](0x1f4,_0x5aa255[_0x180a('0x11')]));});}else _0x3043be(0x1);});});};function activateAdditionalPhone(_0x4e7d36,_0x52d06b,_0x47f695,_0x5057be,_0x2684b2){return new Promise(function(_0x122f7a,_0x54fa9b){var _0x47826f;if(_['isNil'](_0x47f695['scheduledat'])){_0x47f695['scheduledat']=moment();}if(moment()>moment(_0x47f695[_0x180a('0x2b')])){_0x47826f=moment()['add'](_0x2684b2||0x3,_0x180a('0x2c'));}else{if(_0x47f695['OrderBy']==0x0){_0x47826f=moment(_0x47f695[_0x180a('0x2b')]);}else{_0x47826f=moment()[_0x180a('0x2d')](_0x2684b2||0x3,'minutes');}}if(_[_0x180a('0x2e')](_0x47826f)){_0x47826f=moment()['add'](_0x2684b2||0x3,_0x180a('0x2c'));}var _0x264db1={'phone':_0x4e7d36[_0x180a('0x2f')],'active':0x0,'OrderBy':_[_0x180a('0x2e')](_0x4e7d36[_0x180a('0x1d')])?0x0:_0x4e7d36[_0x180a('0x1d')],'scheduledat':moment()['add'](_0x5057be||0x1,_0x180a('0x2c')),'countbusyretry':_0x52d06b['countbusyretry'],'countcongestionretry':_0x52d06b[_0x180a('0x20')],'countnoanswerretry':_0x52d06b[_0x180a('0x21')],'countnosuchnumberretry':_0x52d06b[_0x180a('0x22')],'countdropretry':_0x52d06b[_0x180a('0x23')],'countabandonedretry':_0x52d06b[_0x180a('0x24')],'countmachineretry':_0x52d06b[_0x180a('0x30')],'countagentrejectretry':_0x52d06b[_0x180a('0x25')],'createdAt':_0x52d06b[_0x180a('0x31')],'updatedAt':_0x52d06b[_0x180a('0x32')]};var _0x2f43e5={'CmHopperId':_0x4e7d36['id'],'phone':_0x47f695[_0x180a('0x2f')],'active':0x0,'OrderBy':_[_0x180a('0x2e')](_0x47f695[_0x180a('0x1d')])?0x0:_0x47f695[_0x180a('0x1d')],'scheduledat':_0x47826f,'countbusyretry':_0x47f695['countbusyretry'],'countcongestionretry':_0x47f695[_0x180a('0x20')],'countnoanswerretry':_0x47f695[_0x180a('0x21')],'countnosuchnumberretry':_0x47f695[_0x180a('0x22')],'countdropretry':_0x47f695['countdropretry'],'countabandonedretry':_0x47f695[_0x180a('0x24')],'countmachineretry':_0x47f695[_0x180a('0x30')],'countagentrejectretry':_0x47f695[_0x180a('0x25')],'createdAt':_0x47f695['createdAt'],'updatedAt':_0x47f695['updatedAt']};return db[_0x180a('0x33')]['transaction'](function(_0x5da4d5){return db[_0x180a('0x1c')][_0x180a('0x34')](_0x264db1,{'where':{'id':_0x47f695['id']}},{'transaction':_0x5da4d5})[_0x180a('0xa')](function(){return db[_0x180a('0x16')][_0x180a('0x34')](_0x2f43e5,{'where':{'id':_0x4e7d36['id']}},{'transaction':_0x5da4d5});});})[_0x180a('0xa')](function(_0x535687){_0x122f7a({'id':_0x4e7d36['id'],'phone':_0x47f695['phone']});})[_0x180a('0x14')](function(_0xe1cf23){logger[_0x180a('0x10')](_0x180a('0x35'),_0xe1cf23[_0x180a('0x11')]);_0x54fa9b({'error':_0xe1cf23[_0x180a('0x11')]});});});}exports['IncrementPreviewCounters']=function(_0x141dff){var _0x21f7bf=this;return new Promise(function(_0x321136,_0x2037c2){return db[_0x180a('0x16')][_0x180a('0x34')](_0x141dff['body'][_0x180a('0x36')],{'where':{'id':_0x141dff[_0x180a('0x18')]['id']}})[_0x180a('0xa')](function(_0x3e10cf){_0x321136(_0x3e10cf);})[_0x180a('0x14')](function(_0x3f8963){logger['error'](_0x180a('0x37'),_0x3f8963[_0x180a('0x11')]);_0x2037c2(_0x21f7bf['error'](0x1f4,_0x3f8963[_0x180a('0x11')]));});});};