16d5bceeb9b40f9d059edc77c2e4905ddeac3dfe
[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 _0xec89=['entity','dialGlobalMaxRetry','countnoanswerretry','SwapAdditionalPhones','ContactId','ListId','CmHopperAdditionalPhone','duration','waitTime','catch','isNil','scheduledat','add','minutes','phone','createdAt','sequelize','transaction','activateAdditionalPhone','IncrementPreviewCounters','update','field','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','VerifyAdditionalPhones','CmHopper','findOne','body','VoiceQueueId','CampaignId','OrderBy','ASC','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry'];(function(_0x57d0dc,_0x387f3e){var _0x177765=function(_0x1bbc9e){while(--_0x1bbc9e){_0x57d0dc['push'](_0x57d0dc['shift']());}};_0x177765(++_0x387f3e);}(_0xec89,0x1de));var _0x9ec8=function(_0x5125a5,_0x2611b1){_0x5125a5=_0x5125a5-0x0;var _0x164ee9=_0xec89[_0x5125a5];return _0x164ee9;};'use strict';var _=require(_0x9ec8('0x0'));var util=require(_0x9ec8('0x1'));var moment=require('moment');var BPromise=require(_0x9ec8('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ec8('0x3'));var db=require(_0x9ec8('0x4'))['db'];var utils=require(_0x9ec8('0x5'));var logger=require(_0x9ec8('0x6'))(_0x9ec8('0x7'));var config=require(_0x9ec8('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x9ec8('0x9')][_0x9ec8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x31e32e,_0x5df5f5,_0x54575c){return new BPromise(function(_0x576d8a,_0x9b1437){return client[_0x9ec8('0xb')](_0x31e32e,_0x54575c)[_0x9ec8('0xc')](function(_0x3b5af7){logger[_0x9ec8('0xd')](_0x9ec8('0xe'),_0x5df5f5,'request\x20sent');logger[_0x9ec8('0xf')](_0x9ec8('0x10'),_0x5df5f5,_0x9ec8('0x11'),JSON['stringify'](_0x3b5af7));if(_0x3b5af7[_0x9ec8('0x12')]){if(_0x3b5af7[_0x9ec8('0x12')][_0x9ec8('0x13')]===0x1f4){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5df5f5,_0x3b5af7[_0x9ec8('0x12')][_0x9ec8('0x14')]);return _0x9b1437(_0x3b5af7[_0x9ec8('0x12')]['message']);}logger[_0x9ec8('0x12')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5df5f5,_0x3b5af7[_0x9ec8('0x12')][_0x9ec8('0x14')]);return _0x576d8a(_0x3b5af7[_0x9ec8('0x12')][_0x9ec8('0x14')]);}else{logger['info']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5df5f5,'request\x20sent');_0x576d8a(_0x3b5af7['result'][_0x9ec8('0x14')]);}})['catch'](function(_0x412ae6){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x5df5f5,_0x412ae6);_0x9b1437(_0x412ae6);});});}exports[_0x9ec8('0x15')]=function(_0x5d70bc){var _0x2cb767=this;return new Promise(function(_0x3cf6d4,_0x4d5a38){return db[_0x9ec8('0x16')][_0x9ec8('0x17')]({'raw':!![],'where':{'ContactId':_0x5d70bc['body']['ContactId'],'ListId':_0x5d70bc[_0x9ec8('0x18')]['ListId'],'VoiceQueueId':_0x5d70bc[_0x9ec8('0x18')][_0x9ec8('0x19')]===undefined?null:_0x5d70bc['body'][_0x9ec8('0x19')],'CampaignId':_0x5d70bc['body'][_0x9ec8('0x1a')]===undefined?null:_0x5d70bc[_0x9ec8('0x18')][_0x9ec8('0x1a')]}})[_0x9ec8('0xc')](function(_0x44104e){if(_0x44104e!=null){return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0x44104e['id'],'OrderBy':{'$gt':_0x44104e['OrderBy']}},'order':[[_0x9ec8('0x1b'),_0x9ec8('0x1c')]]})[_0x9ec8('0xc')](function(_0x368ea5){var _0x3fe346=0x0;if(_0x368ea5){if(_0x368ea5[_0x9ec8('0x1d')]+_0x368ea5[_0x9ec8('0x1e')]+_0x368ea5['countnoanswerretry']+_0x368ea5[_0x9ec8('0x1f')]+_0x368ea5[_0x9ec8('0x20')]+_0x368ea5[_0x9ec8('0x21')]+_0x368ea5['countmachineretry']+_0x368ea5[_0x9ec8('0x22')]<_0x5d70bc[_0x9ec8('0x23')][_0x9ec8('0x24')])_0x3fe346=0x1;_0x3cf6d4({'additional':_0x3fe346});}else{return db['CmHopperAdditionalPhone'][_0x9ec8('0x17')]({'raw':!![],'where':{'CmHopperId':_0x44104e['id']},'order':[['OrderBy',_0x9ec8('0x1c')]]})['then'](function(_0x5b4f69){var _0x1d1c6d=0x0;if(_0x5b4f69){if(_0x5b4f69['countbusyretry']+_0x5b4f69['countcongestionretry']+_0x5b4f69[_0x9ec8('0x25')]+_0x5b4f69[_0x9ec8('0x1f')]+_0x5b4f69[_0x9ec8('0x20')]+_0x5b4f69[_0x9ec8('0x21')]+_0x5b4f69['countmachineretry']+_0x5b4f69['countagentrejectretry']<_0x5d70bc['entity']['dialGlobalMaxRetry'])_0x1d1c6d=0x1;_0x3cf6d4({'additional':_0x1d1c6d});}else{_0x3cf6d4({'additional':0x0});}})['catch'](function(_0x365bde){logger[_0x9ec8('0x12')](_0x9ec8('0x15'),_0x365bde[_0x9ec8('0x14')]);_0x4d5a38(_0x2cb767[_0x9ec8('0x12')](0x1f4,_0x365bde[_0x9ec8('0x14')]));});}})['catch'](function(_0x3008e4){logger[_0x9ec8('0x12')]('VerifyAdditionalPhones',_0x3008e4['message']);_0x4d5a38(_0x2cb767[_0x9ec8('0x12')](0x1f4,_0x3008e4[_0x9ec8('0x14')]));});}else _0x3cf6d4({'additional':0x0});});});};exports[_0x9ec8('0x26')]=function(_0x1f489c){var _0x462f86=this;return new Promise(function(_0x4a33a5,_0x1caff3){return db[_0x9ec8('0x16')]['findOne']({'raw':!![],'where':{'ContactId':_0x1f489c[_0x9ec8('0x18')][_0x9ec8('0x27')],'ListId':_0x1f489c[_0x9ec8('0x18')][_0x9ec8('0x28')],'VoiceQueueId':_0x1f489c[_0x9ec8('0x18')][_0x9ec8('0x19')]===undefined?null:_0x1f489c[_0x9ec8('0x18')][_0x9ec8('0x19')],'CampaignId':_0x1f489c[_0x9ec8('0x18')]['CampaignId']===undefined?null:_0x1f489c[_0x9ec8('0x18')][_0x9ec8('0x1a')]}})['then'](function(_0x4ea708){if(_0x4ea708!=null){return db[_0x9ec8('0x29')][_0x9ec8('0x17')]({'raw':!![],'where':{'CmHopperId':_0x4ea708['id'],'OrderBy':{'$gte':_0x4ea708[_0x9ec8('0x1b')]}},'order':[[_0x9ec8('0x1b'),_0x9ec8('0x1c')]]})[_0x9ec8('0xc')](function(_0x5bd87f){if(_0x5bd87f)return activateAdditionalPhone(_0x4ea708,_0x1f489c[_0x9ec8('0x18')],_0x5bd87f,_0x1f489c[_0x9ec8('0x2a')],_0x1f489c[_0x9ec8('0x2b')])['then'](function(_0x198dd2){_0x4a33a5(_0x198dd2);});else{return db[_0x9ec8('0x29')][_0x9ec8('0x17')]({'raw':!![],'where':{'CmHopperId':_0x4ea708['id']},'order':[[_0x9ec8('0x1b'),_0x9ec8('0x1c')]]})[_0x9ec8('0xc')](function(_0x1c6e88){if(_0x1c6e88)return activateAdditionalPhone(_0x4ea708,_0x1f489c[_0x9ec8('0x18')],_0x1c6e88,_0x1f489c[_0x9ec8('0x2a')],_0x1f489c[_0x9ec8('0x2b')])[_0x9ec8('0xc')](function(_0x13bbe8){_0x4a33a5(_0x13bbe8);});else{_0x4a33a5({'id':_0x4ea708['id'],'phone':''});}})[_0x9ec8('0x2c')](function(_0x14f513){logger['error'](_0x9ec8('0x15'),_0x14f513['message']);_0x1caff3(_0x462f86[_0x9ec8('0x12')](0x1f4,_0x14f513['message']));});}})['catch'](function(_0x3885a7){logger['error'](_0x9ec8('0x15'),_0x3885a7[_0x9ec8('0x14')]);_0x1caff3(_0x462f86[_0x9ec8('0x12')](0x1f4,_0x3885a7['message']));});}else _0x4a33a5(0x1);});});};function activateAdditionalPhone(_0x5bb82a,_0xda0eb0,_0x193c3c,_0x36b99e,_0x371b86){return new Promise(function(_0x4ef613,_0x11c80e){var _0x170c46;if(_[_0x9ec8('0x2d')](_0x193c3c[_0x9ec8('0x2e')])){_0x193c3c[_0x9ec8('0x2e')]=moment();}if(moment()>moment(_0x193c3c[_0x9ec8('0x2e')])){_0x170c46=moment()[_0x9ec8('0x2f')](_0x371b86||0x3,_0x9ec8('0x30'));}else{if(_0x193c3c['OrderBy']==0x0){_0x170c46=moment(_0x193c3c['scheduledat']);}else{_0x170c46=moment()[_0x9ec8('0x2f')](_0x371b86||0x3,_0x9ec8('0x30'));}}if(_[_0x9ec8('0x2d')](_0x170c46)){_0x170c46=moment()[_0x9ec8('0x2f')](_0x371b86||0x3,'minutes');}var _0x150e6e={'phone':_0x5bb82a[_0x9ec8('0x31')],'active':0x0,'OrderBy':_['isNil'](_0x5bb82a[_0x9ec8('0x1b')])?0x0:_0x5bb82a[_0x9ec8('0x1b')],'scheduledat':moment()[_0x9ec8('0x2f')](_0x36b99e||0x1,_0x9ec8('0x30')),'countbusyretry':_0xda0eb0[_0x9ec8('0x1d')],'countcongestionretry':_0xda0eb0[_0x9ec8('0x1e')],'countnoanswerretry':_0xda0eb0['countnoanswerretry'],'countnosuchnumberretry':_0xda0eb0[_0x9ec8('0x1f')],'countdropretry':_0xda0eb0[_0x9ec8('0x20')],'countabandonedretry':_0xda0eb0[_0x9ec8('0x21')],'countmachineretry':_0xda0eb0['countmachineretry'],'countagentrejectretry':_0xda0eb0[_0x9ec8('0x22')],'createdAt':_0xda0eb0['createdAt'],'updatedAt':_0xda0eb0['updatedAt']};var _0x188394={'CmHopperId':_0x5bb82a['id'],'phone':_0x193c3c['phone'],'active':0x0,'OrderBy':_['isNil'](_0x193c3c['OrderBy'])?0x0:_0x193c3c[_0x9ec8('0x1b')],'scheduledat':_0x170c46,'countbusyretry':_0x193c3c[_0x9ec8('0x1d')],'countcongestionretry':_0x193c3c[_0x9ec8('0x1e')],'countnoanswerretry':_0x193c3c['countnoanswerretry'],'countnosuchnumberretry':_0x193c3c[_0x9ec8('0x1f')],'countdropretry':_0x193c3c[_0x9ec8('0x20')],'countabandonedretry':_0x193c3c['countabandonedretry'],'countmachineretry':_0x193c3c['countmachineretry'],'countagentrejectretry':_0x193c3c[_0x9ec8('0x22')],'createdAt':_0x193c3c[_0x9ec8('0x32')],'updatedAt':_0x193c3c['updatedAt']};return db[_0x9ec8('0x33')][_0x9ec8('0x34')](function(_0x56a91f){return db[_0x9ec8('0x29')]['update'](_0x150e6e,{'where':{'id':_0x193c3c['id']}},{'transaction':_0x56a91f})[_0x9ec8('0xc')](function(){return db[_0x9ec8('0x16')]['update'](_0x188394,{'where':{'id':_0x5bb82a['id']}},{'transaction':_0x56a91f});});})[_0x9ec8('0xc')](function(_0x203cbe){_0x4ef613({'id':_0x5bb82a['id'],'phone':_0x193c3c['phone']});})[_0x9ec8('0x2c')](function(_0x478d95){logger[_0x9ec8('0x12')](_0x9ec8('0x35'),_0x478d95[_0x9ec8('0x14')]);_0x11c80e({'error':_0x478d95[_0x9ec8('0x14')]});});});}exports[_0x9ec8('0x36')]=function(_0x493947){var _0x4a8574=this;return new Promise(function(_0x4da84c,_0x2c99b9){return db[_0x9ec8('0x16')][_0x9ec8('0x37')](_0x493947[_0x9ec8('0x18')][_0x9ec8('0x38')],{'where':{'id':_0x493947[_0x9ec8('0x18')]['id']}})[_0x9ec8('0xc')](function(_0x17ba29){_0x4da84c(_0x17ba29);})[_0x9ec8('0x2c')](function(_0x4d2f7d){logger[_0x9ec8('0x12')](_0x9ec8('0x36'),_0x4d2f7d['message']);_0x2c99b9(_0x4a8574[_0x9ec8('0x12')](0x1f4,_0x4d2f7d[_0x9ec8('0x14')]));});});};