b167931ba524586a46f53c2387351ddde4fdce41
[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 _0x3d67=['code','message','result','VerifyAdditionalPhones','CmHopper','findOne','body','ListId','VoiceQueueId','CampaignId','OrderBy','countcongestionretry','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','dialGlobalMaxRetry','CmHopperAdditionalPhone','ASC','countbusyretry','countdropretry','catch','ContactId','duration','waitTime','isNil','scheduledat','add','minutes','phone','countnoanswerretry','createdAt','updatedAt','sequelize','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x2aa41c,_0x4d2450){var _0x523146=function(_0x7b20e6){while(--_0x7b20e6){_0x2aa41c['push'](_0x2aa41c['shift']());}};_0x523146(++_0x4d2450);}(_0x3d67,0x16f));var _0x73d6=function(_0x5cc786,_0x206442){_0x5cc786=_0x5cc786-0x0;var _0x18bd3d=_0x3d67[_0x5cc786];return _0x18bd3d;};'use strict';var _=require(_0x73d6('0x0'));var util=require(_0x73d6('0x1'));var moment=require('moment');var BPromise=require(_0x73d6('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x73d6('0x3'));var db=require(_0x73d6('0x4'))['db'];var utils=require(_0x73d6('0x5'));var logger=require('../../config/logger')(_0x73d6('0x6'));var config=require(_0x73d6('0x7'));var jayson=require(_0x73d6('0x8'));var client=jayson[_0x73d6('0x9')][_0x73d6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3e54e6,_0x41dddf,_0x2e081f){return new BPromise(function(_0x259082,_0x1eec40){return client[_0x73d6('0xb')](_0x3e54e6,_0x2e081f)[_0x73d6('0xc')](function(_0x80f079){logger[_0x73d6('0xd')](_0x73d6('0xe'),_0x41dddf,_0x73d6('0xf'));logger['debug']('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x41dddf,_0x73d6('0xf'),JSON[_0x73d6('0x10')](_0x80f079));if(_0x80f079[_0x73d6('0x11')]){if(_0x80f079[_0x73d6('0x11')][_0x73d6('0x12')]===0x1f4){logger[_0x73d6('0x11')](_0x73d6('0xe'),_0x41dddf,_0x80f079[_0x73d6('0x11')][_0x73d6('0x13')]);return _0x1eec40(_0x80f079[_0x73d6('0x11')]['message']);}logger['error'](_0x73d6('0xe'),_0x41dddf,_0x80f079['error'][_0x73d6('0x13')]);return _0x259082(_0x80f079[_0x73d6('0x11')][_0x73d6('0x13')]);}else{logger['info'](_0x73d6('0xe'),_0x41dddf,_0x73d6('0xf'));_0x259082(_0x80f079[_0x73d6('0x14')][_0x73d6('0x13')]);}})['catch'](function(_0x53cc98){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x41dddf,_0x53cc98);_0x1eec40(_0x53cc98);});});}exports[_0x73d6('0x15')]=function(_0x263bc5){var _0x459603=this;return new Promise(function(_0x4d22d7,_0x379f20){return db[_0x73d6('0x16')][_0x73d6('0x17')]({'raw':!![],'where':{'ContactId':_0x263bc5[_0x73d6('0x18')]['ContactId'],'ListId':_0x263bc5[_0x73d6('0x18')][_0x73d6('0x19')],'VoiceQueueId':_0x263bc5[_0x73d6('0x18')][_0x73d6('0x1a')]===undefined?null:_0x263bc5[_0x73d6('0x18')][_0x73d6('0x1a')],'CampaignId':_0x263bc5['body'][_0x73d6('0x1b')]===undefined?null:_0x263bc5[_0x73d6('0x18')][_0x73d6('0x1b')]}})[_0x73d6('0xc')](function(_0x254fc4){if(_0x254fc4!=null){return db['CmHopperAdditionalPhone'][_0x73d6('0x17')]({'raw':!![],'where':{'CmHopperId':_0x254fc4['id'],'OrderBy':{'$gt':_0x254fc4[_0x73d6('0x1c')]}},'order':[[_0x73d6('0x1c'),'ASC']]})[_0x73d6('0xc')](function(_0x2294dd){var _0x28381d=0x0;if(_0x2294dd){if(_0x2294dd['countbusyretry']+_0x2294dd[_0x73d6('0x1d')]+_0x2294dd['countnoanswerretry']+_0x2294dd[_0x73d6('0x1e')]+_0x2294dd['countdropretry']+_0x2294dd[_0x73d6('0x1f')]+_0x2294dd[_0x73d6('0x20')]+_0x2294dd[_0x73d6('0x21')]<_0x263bc5['entity'][_0x73d6('0x22')])_0x28381d=0x1;_0x4d22d7({'additional':_0x28381d});}else{return db[_0x73d6('0x23')][_0x73d6('0x17')]({'raw':!![],'where':{'CmHopperId':_0x254fc4['id']},'order':[['OrderBy',_0x73d6('0x24')]]})['then'](function(_0x47e585){var _0xf23553=0x0;if(_0x47e585){if(_0x47e585[_0x73d6('0x25')]+_0x47e585['countcongestionretry']+_0x47e585['countnoanswerretry']+_0x47e585[_0x73d6('0x1e')]+_0x47e585[_0x73d6('0x26')]+_0x47e585[_0x73d6('0x1f')]+_0x47e585[_0x73d6('0x20')]+_0x47e585[_0x73d6('0x21')]<_0x263bc5['entity']['dialGlobalMaxRetry'])_0xf23553=0x1;_0x4d22d7({'additional':_0xf23553});}else{_0x4d22d7({'additional':0x0});}})[_0x73d6('0x27')](function(_0x5e1322){logger[_0x73d6('0x11')](_0x73d6('0x15'),_0x5e1322['message']);_0x379f20(_0x459603['error'](0x1f4,_0x5e1322[_0x73d6('0x13')]));});}})[_0x73d6('0x27')](function(_0x66016){logger[_0x73d6('0x11')](_0x73d6('0x15'),_0x66016[_0x73d6('0x13')]);_0x379f20(_0x459603[_0x73d6('0x11')](0x1f4,_0x66016[_0x73d6('0x13')]));});}else _0x4d22d7({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x8f05be){var _0xc6cac6=this;return new Promise(function(_0x3968f2,_0x5d2e38){return db[_0x73d6('0x16')][_0x73d6('0x17')]({'raw':!![],'where':{'ContactId':_0x8f05be['body'][_0x73d6('0x28')],'ListId':_0x8f05be['body'][_0x73d6('0x19')],'VoiceQueueId':_0x8f05be[_0x73d6('0x18')][_0x73d6('0x1a')]===undefined?null:_0x8f05be['body'][_0x73d6('0x1a')],'CampaignId':_0x8f05be[_0x73d6('0x18')][_0x73d6('0x1b')]===undefined?null:_0x8f05be[_0x73d6('0x18')][_0x73d6('0x1b')]}})['then'](function(_0x861051){if(_0x861051!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x861051['id'],'OrderBy':{'$gte':_0x861051['OrderBy']}},'order':[[_0x73d6('0x1c'),_0x73d6('0x24')]]})[_0x73d6('0xc')](function(_0x1026c2){if(_0x1026c2)return activateAdditionalPhone(_0x861051,_0x8f05be[_0x73d6('0x18')],_0x1026c2,_0x8f05be[_0x73d6('0x29')],_0x8f05be[_0x73d6('0x2a')])['then'](function(_0x83104f){_0x3968f2(_0x83104f);});else{return db['CmHopperAdditionalPhone'][_0x73d6('0x17')]({'raw':!![],'where':{'CmHopperId':_0x861051['id']},'order':[['OrderBy',_0x73d6('0x24')]]})[_0x73d6('0xc')](function(_0x346eca){if(_0x346eca)return activateAdditionalPhone(_0x861051,_0x8f05be[_0x73d6('0x18')],_0x346eca,_0x8f05be[_0x73d6('0x29')],_0x8f05be[_0x73d6('0x2a')])[_0x73d6('0xc')](function(_0x273175){_0x3968f2(_0x273175);});else{_0x3968f2({'id':_0x861051['id'],'phone':''});}})['catch'](function(_0xe640a1){logger[_0x73d6('0x11')]('VerifyAdditionalPhones',_0xe640a1['message']);_0x5d2e38(_0xc6cac6[_0x73d6('0x11')](0x1f4,_0xe640a1[_0x73d6('0x13')]));});}})['catch'](function(_0x26d092){logger['error']('VerifyAdditionalPhones',_0x26d092[_0x73d6('0x13')]);_0x5d2e38(_0xc6cac6[_0x73d6('0x11')](0x1f4,_0x26d092[_0x73d6('0x13')]));});}else _0x3968f2(0x1);});});};function activateAdditionalPhone(_0x3103de,_0x207e6a,_0x421f44,_0x9367c3,_0x37e9e4){return new Promise(function(_0x58b88c,_0x1ddcf2){var _0x55559a;if(_[_0x73d6('0x2b')](_0x421f44['scheduledat'])){_0x421f44[_0x73d6('0x2c')]=moment();}if(moment()>moment(_0x421f44['scheduledat'])){_0x55559a=moment()[_0x73d6('0x2d')](_0x37e9e4||0x3,_0x73d6('0x2e'));}else{if(_0x421f44[_0x73d6('0x1c')]==0x0){_0x55559a=moment(_0x421f44[_0x73d6('0x2c')]);}else{_0x55559a=moment()['add'](_0x37e9e4||0x3,_0x73d6('0x2e'));}}if(_[_0x73d6('0x2b')](_0x55559a)){_0x55559a=moment()[_0x73d6('0x2d')](_0x37e9e4||0x3,_0x73d6('0x2e'));}var _0x51c569={'phone':_0x3103de[_0x73d6('0x2f')],'active':0x0,'OrderBy':_[_0x73d6('0x2b')](_0x3103de[_0x73d6('0x1c')])?0x0:_0x3103de['OrderBy'],'scheduledat':moment()['add'](_0x9367c3||0x1,_0x73d6('0x2e')),'countbusyretry':_0x207e6a[_0x73d6('0x25')],'countcongestionretry':_0x207e6a['countcongestionretry'],'countnoanswerretry':_0x207e6a[_0x73d6('0x30')],'countnosuchnumberretry':_0x207e6a[_0x73d6('0x1e')],'countdropretry':_0x207e6a['countdropretry'],'countabandonedretry':_0x207e6a[_0x73d6('0x1f')],'countmachineretry':_0x207e6a['countmachineretry'],'countagentrejectretry':_0x207e6a[_0x73d6('0x21')],'createdAt':_0x207e6a[_0x73d6('0x31')],'updatedAt':_0x207e6a[_0x73d6('0x32')]};var _0x4c48b6={'CmHopperId':_0x3103de['id'],'phone':_0x421f44['phone'],'active':0x0,'OrderBy':_['isNil'](_0x421f44['OrderBy'])?0x0:_0x421f44[_0x73d6('0x1c')],'scheduledat':_0x55559a,'countbusyretry':_0x421f44[_0x73d6('0x25')],'countcongestionretry':_0x421f44[_0x73d6('0x1d')],'countnoanswerretry':_0x421f44['countnoanswerretry'],'countnosuchnumberretry':_0x421f44[_0x73d6('0x1e')],'countdropretry':_0x421f44['countdropretry'],'countabandonedretry':_0x421f44[_0x73d6('0x1f')],'countmachineretry':_0x421f44[_0x73d6('0x20')],'countagentrejectretry':_0x421f44[_0x73d6('0x21')],'createdAt':_0x421f44['createdAt'],'updatedAt':_0x421f44[_0x73d6('0x32')]};return db[_0x73d6('0x33')]['transaction'](function(_0x5eac53){return db[_0x73d6('0x23')]['update'](_0x51c569,{'where':{'id':_0x421f44['id']}},{'transaction':_0x5eac53})['then'](function(){return db['CmHopper']['update'](_0x4c48b6,{'where':{'id':_0x3103de['id']}},{'transaction':_0x5eac53});});})[_0x73d6('0xc')](function(_0x2da6c6){_0x58b88c({'id':_0x3103de['id'],'phone':_0x421f44['phone']});})[_0x73d6('0x27')](function(_0x3b2555){logger['error'](_0x73d6('0x34'),_0x3b2555['message']);_0x1ddcf2({'error':_0x3b2555[_0x73d6('0x13')]});});});}exports[_0x73d6('0x35')]=function(_0x7c67f0){var _0x1e776d=this;return new Promise(function(_0x1ac5f9,_0x38117d){return db[_0x73d6('0x16')]['update'](_0x7c67f0['body'][_0x73d6('0x36')],{'where':{'id':_0x7c67f0['body']['id']}})['then'](function(_0x396f82){_0x1ac5f9(_0x396f82);})[_0x73d6('0x27')](function(_0x17cafb){logger['error'](_0x73d6('0x35'),_0x17cafb[_0x73d6('0x13')]);_0x38117d(_0x1e776d[_0x73d6('0x11')](0x1f4,_0x17cafb[_0x73d6('0x13')]));});});};