Built motion from commit d5e4af8c.|2.6.23
[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 _0x8a78=['phone','isNil','createdAt','updatedAt','transaction','update','activateAdditionalPhone','IncrementPreviewCounters','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','VoiceQueueId','CampaignId','OrderBy','ASC','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','entity','dialGlobalMaxRetry','CmHopperAdditionalPhone','countdropretry','SwapAdditionalPhones','ListId','duration','waitTime','scheduledat','add','minutes'];(function(_0x409f9f,_0x365478){var _0x107f83=function(_0x61b4c4){while(--_0x61b4c4){_0x409f9f['push'](_0x409f9f['shift']());}};_0x107f83(++_0x365478);}(_0x8a78,0x158));var _0x88a7=function(_0x5a8aa3,_0x2294d5){_0x5a8aa3=_0x5a8aa3-0x0;var _0x5d0458=_0x8a78[_0x5a8aa3];return _0x5d0458;};'use strict';var _=require(_0x88a7('0x0'));var util=require(_0x88a7('0x1'));var moment=require(_0x88a7('0x2'));var BPromise=require(_0x88a7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x88a7('0x4'));var db=require(_0x88a7('0x5'))['db'];var utils=require(_0x88a7('0x6'));var logger=require(_0x88a7('0x7'))(_0x88a7('0x8'));var config=require('../../config/environment');var jayson=require(_0x88a7('0x9'));var client=jayson['client'][_0x88a7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x443560,_0x118b71,_0x38201b){return new BPromise(function(_0x585571,_0xd25e66){return client[_0x88a7('0xb')](_0x443560,_0x38201b)[_0x88a7('0xc')](function(_0x2ef7f8){logger[_0x88a7('0xd')](_0x88a7('0xe'),_0x118b71,_0x88a7('0xf'));logger[_0x88a7('0x10')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x118b71,_0x88a7('0xf'),JSON[_0x88a7('0x11')](_0x2ef7f8));if(_0x2ef7f8['error']){if(_0x2ef7f8[_0x88a7('0x12')]['code']===0x1f4){logger[_0x88a7('0x12')](_0x88a7('0xe'),_0x118b71,_0x2ef7f8[_0x88a7('0x12')]['message']);return _0xd25e66(_0x2ef7f8[_0x88a7('0x12')][_0x88a7('0x13')]);}logger[_0x88a7('0x12')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x118b71,_0x2ef7f8[_0x88a7('0x12')][_0x88a7('0x13')]);return _0x585571(_0x2ef7f8['error'][_0x88a7('0x13')]);}else{logger['info'](_0x88a7('0xe'),_0x118b71,_0x88a7('0xf'));_0x585571(_0x2ef7f8[_0x88a7('0x14')][_0x88a7('0x13')]);}})[_0x88a7('0x15')](function(_0x38f265){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x118b71,_0x38f265);_0xd25e66(_0x38f265);});});}exports[_0x88a7('0x16')]=function(_0x27da04){var _0x49a061=this;return new Promise(function(_0x28c99f,_0x3086fd){return db[_0x88a7('0x17')][_0x88a7('0x18')]({'raw':!![],'where':{'ContactId':_0x27da04['body']['ContactId'],'ListId':_0x27da04[_0x88a7('0x19')]['ListId'],'VoiceQueueId':_0x27da04[_0x88a7('0x19')][_0x88a7('0x1a')]===undefined?null:_0x27da04['body']['VoiceQueueId'],'CampaignId':_0x27da04['body'][_0x88a7('0x1b')]===undefined?null:_0x27da04[_0x88a7('0x19')][_0x88a7('0x1b')]}})[_0x88a7('0xc')](function(_0x127e73){if(_0x127e73!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x127e73['id'],'OrderBy':{'$gt':_0x127e73['OrderBy']}},'order':[[_0x88a7('0x1c'),_0x88a7('0x1d')]]})[_0x88a7('0xc')](function(_0x2f1c0a){var _0x2b0194=0x0;if(_0x2f1c0a){if(_0x2f1c0a[_0x88a7('0x1e')]+_0x2f1c0a[_0x88a7('0x1f')]+_0x2f1c0a[_0x88a7('0x20')]+_0x2f1c0a[_0x88a7('0x21')]+_0x2f1c0a['countdropretry']+_0x2f1c0a[_0x88a7('0x22')]+_0x2f1c0a[_0x88a7('0x23')]+_0x2f1c0a[_0x88a7('0x24')]<_0x27da04[_0x88a7('0x25')][_0x88a7('0x26')])_0x2b0194=0x1;_0x28c99f({'additional':_0x2b0194});}else{return db[_0x88a7('0x27')][_0x88a7('0x18')]({'raw':!![],'where':{'CmHopperId':_0x127e73['id']},'order':[['OrderBy','ASC']]})[_0x88a7('0xc')](function(_0x919f87){var _0x20809e=0x0;if(_0x919f87){if(_0x919f87[_0x88a7('0x1e')]+_0x919f87['countcongestionretry']+_0x919f87[_0x88a7('0x20')]+_0x919f87[_0x88a7('0x21')]+_0x919f87[_0x88a7('0x28')]+_0x919f87[_0x88a7('0x22')]+_0x919f87[_0x88a7('0x23')]+_0x919f87[_0x88a7('0x24')]<_0x27da04[_0x88a7('0x25')][_0x88a7('0x26')])_0x20809e=0x1;_0x28c99f({'additional':_0x20809e});}else{_0x28c99f({'additional':0x0});}})[_0x88a7('0x15')](function(_0x34b0a2){logger[_0x88a7('0x12')](_0x88a7('0x16'),_0x34b0a2[_0x88a7('0x13')]);_0x3086fd(_0x49a061[_0x88a7('0x12')](0x1f4,_0x34b0a2[_0x88a7('0x13')]));});}})['catch'](function(_0x13583d){logger['error'](_0x88a7('0x16'),_0x13583d[_0x88a7('0x13')]);_0x3086fd(_0x49a061[_0x88a7('0x12')](0x1f4,_0x13583d[_0x88a7('0x13')]));});}else _0x28c99f({'additional':0x0});});});};exports[_0x88a7('0x29')]=function(_0x4de659){var _0x3867ec=this;return new Promise(function(_0x44a7d9,_0xf15103){return db[_0x88a7('0x17')][_0x88a7('0x18')]({'raw':!![],'where':{'ContactId':_0x4de659[_0x88a7('0x19')]['ContactId'],'ListId':_0x4de659['body'][_0x88a7('0x2a')],'VoiceQueueId':_0x4de659[_0x88a7('0x19')][_0x88a7('0x1a')]===undefined?null:_0x4de659[_0x88a7('0x19')][_0x88a7('0x1a')],'CampaignId':_0x4de659['body'][_0x88a7('0x1b')]===undefined?null:_0x4de659[_0x88a7('0x19')]['CampaignId']}})['then'](function(_0x4cefa8){if(_0x4cefa8!=null){return db[_0x88a7('0x27')][_0x88a7('0x18')]({'raw':!![],'where':{'CmHopperId':_0x4cefa8['id'],'OrderBy':{'$gte':_0x4cefa8[_0x88a7('0x1c')]}},'order':[[_0x88a7('0x1c'),'ASC']]})[_0x88a7('0xc')](function(_0x36a7a8){if(_0x36a7a8)return activateAdditionalPhone(_0x4cefa8,_0x4de659[_0x88a7('0x19')],_0x36a7a8,_0x4de659[_0x88a7('0x2b')],_0x4de659[_0x88a7('0x2c')])['then'](function(_0x6d886c){_0x44a7d9(_0x6d886c);});else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x4cefa8['id']},'order':[[_0x88a7('0x1c'),_0x88a7('0x1d')]]})[_0x88a7('0xc')](function(_0x3f36d7){if(_0x3f36d7)return activateAdditionalPhone(_0x4cefa8,_0x4de659[_0x88a7('0x19')],_0x3f36d7,_0x4de659[_0x88a7('0x2b')],_0x4de659[_0x88a7('0x2c')])[_0x88a7('0xc')](function(_0x1f4089){_0x44a7d9(_0x1f4089);});else{_0x44a7d9({'id':_0x4cefa8['id'],'phone':''});}})[_0x88a7('0x15')](function(_0x1ee504){logger[_0x88a7('0x12')]('VerifyAdditionalPhones',_0x1ee504[_0x88a7('0x13')]);_0xf15103(_0x3867ec[_0x88a7('0x12')](0x1f4,_0x1ee504[_0x88a7('0x13')]));});}})[_0x88a7('0x15')](function(_0x28b301){logger[_0x88a7('0x12')](_0x88a7('0x16'),_0x28b301[_0x88a7('0x13')]);_0xf15103(_0x3867ec[_0x88a7('0x12')](0x1f4,_0x28b301[_0x88a7('0x13')]));});}else _0x44a7d9(0x1);});});};function activateAdditionalPhone(_0x2eba50,_0x2777e9,_0x6114ad,_0x5afa23,_0x4896c1){return new Promise(function(_0x57b4df,_0x232894){var _0x2d8655;if(_['isNil'](_0x6114ad[_0x88a7('0x2d')])){_0x6114ad[_0x88a7('0x2d')]=moment();}if(moment()>moment(_0x6114ad['scheduledat'])){_0x2d8655=moment()[_0x88a7('0x2e')](_0x4896c1||0x3,'minutes');}else{if(_0x6114ad['OrderBy']==0x0){_0x2d8655=moment(_0x6114ad[_0x88a7('0x2d')]);}else{_0x2d8655=moment()['add'](_0x4896c1||0x3,_0x88a7('0x2f'));}}if(_['isNil'](_0x2d8655)){_0x2d8655=moment()[_0x88a7('0x2e')](_0x4896c1||0x3,_0x88a7('0x2f'));}var _0x210373={'phone':_0x2eba50[_0x88a7('0x30')],'active':0x0,'OrderBy':_[_0x88a7('0x31')](_0x2eba50[_0x88a7('0x1c')])?0x0:_0x2eba50[_0x88a7('0x1c')],'scheduledat':moment()[_0x88a7('0x2e')](_0x5afa23||0x1,_0x88a7('0x2f')),'countbusyretry':_0x2777e9[_0x88a7('0x1e')],'countcongestionretry':_0x2777e9['countcongestionretry'],'countnoanswerretry':_0x2777e9[_0x88a7('0x20')],'countnosuchnumberretry':_0x2777e9[_0x88a7('0x21')],'countdropretry':_0x2777e9[_0x88a7('0x28')],'countabandonedretry':_0x2777e9['countabandonedretry'],'countmachineretry':_0x2777e9[_0x88a7('0x23')],'countagentrejectretry':_0x2777e9[_0x88a7('0x24')],'createdAt':_0x2777e9[_0x88a7('0x32')],'updatedAt':_0x2777e9[_0x88a7('0x33')]};var _0x438ca6={'CmHopperId':_0x2eba50['id'],'phone':_0x6114ad['phone'],'active':0x0,'OrderBy':_[_0x88a7('0x31')](_0x6114ad[_0x88a7('0x1c')])?0x0:_0x6114ad[_0x88a7('0x1c')],'scheduledat':_0x2d8655,'countbusyretry':_0x6114ad['countbusyretry'],'countcongestionretry':_0x6114ad[_0x88a7('0x1f')],'countnoanswerretry':_0x6114ad[_0x88a7('0x20')],'countnosuchnumberretry':_0x6114ad[_0x88a7('0x21')],'countdropretry':_0x6114ad['countdropretry'],'countabandonedretry':_0x6114ad['countabandonedretry'],'countmachineretry':_0x6114ad['countmachineretry'],'countagentrejectretry':_0x6114ad[_0x88a7('0x24')],'createdAt':_0x6114ad[_0x88a7('0x32')],'updatedAt':_0x6114ad['updatedAt']};return db['sequelize'][_0x88a7('0x34')](function(_0x127f0f){return db[_0x88a7('0x27')][_0x88a7('0x35')](_0x210373,{'where':{'id':_0x6114ad['id']}},{'transaction':_0x127f0f})[_0x88a7('0xc')](function(){return db['CmHopper'][_0x88a7('0x35')](_0x438ca6,{'where':{'id':_0x2eba50['id']}},{'transaction':_0x127f0f});});})[_0x88a7('0xc')](function(_0x59eacd){_0x57b4df({'id':_0x2eba50['id'],'phone':_0x6114ad[_0x88a7('0x30')]});})[_0x88a7('0x15')](function(_0x44f07c){logger[_0x88a7('0x12')](_0x88a7('0x36'),_0x44f07c[_0x88a7('0x13')]);_0x232894({'error':_0x44f07c[_0x88a7('0x13')]});});});}exports['IncrementPreviewCounters']=function(_0x44f1c2){var _0x47b188=this;return new Promise(function(_0x26c8fa,_0x3dd32d){return db['CmHopper']['update'](_0x44f1c2[_0x88a7('0x19')]['field'],{'where':{'id':_0x44f1c2['body']['id']}})['then'](function(_0x3ac732){_0x26c8fa(_0x3ac732);})[_0x88a7('0x15')](function(_0xa8c475){logger[_0x88a7('0x12')](_0x88a7('0x37'),_0xa8c475[_0x88a7('0x13')]);_0x3dd32d(_0x47b188[_0x88a7('0x12')](0x1f4,_0xa8c475[_0x88a7('0x13')]));});});};