Built motion from commit 1fa89557.|2.6.10
[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 _0xca07=['info','request\x20sent','debug','stringify','error','code','CmHopperAdditionalPhone,\x20%s,\x20%s','message','catch','CmHopper','findOne','body','ContactId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','countnoanswerretry','countnosuchnumberretry','countdropretry','countagentrejectretry','entity','dialGlobalMaxRetry','ASC','countbusyretry','countcongestionretry','countabandonedretry','countmachineretry','VerifyAdditionalPhones','ListId','duration','waitTime','isNil','scheduledat','add','minutes','updatedAt','phone','createdAt','sequelize','update','activateAdditionalPhone','IncrementPreviewCounters','field','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x5ca6e3,_0x2323e1){var _0x409c6c=function(_0x30871a){while(--_0x30871a){_0x5ca6e3['push'](_0x5ca6e3['shift']());}};_0x409c6c(++_0x2323e1);}(_0xca07,0x17c));var _0x7ca0=function(_0x5c8957,_0x40f077){_0x5c8957=_0x5c8957-0x0;var _0x3e7ffb=_0xca07[_0x5c8957];return _0x3e7ffb;};'use strict';var _=require('lodash');var util=require(_0x7ca0('0x0'));var moment=require(_0x7ca0('0x1'));var BPromise=require(_0x7ca0('0x2'));var rs=require(_0x7ca0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7ca0('0x4'));var logger=require(_0x7ca0('0x5'))('rpc');var config=require(_0x7ca0('0x6'));var jayson=require(_0x7ca0('0x7'));var client=jayson[_0x7ca0('0x8')][_0x7ca0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x10a642,_0x880b1a,_0x537117){return new BPromise(function(_0x548d0f,_0x5448bf){return client[_0x7ca0('0xa')](_0x10a642,_0x537117)[_0x7ca0('0xb')](function(_0x16bded){logger[_0x7ca0('0xc')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x880b1a,_0x7ca0('0xd'));logger[_0x7ca0('0xe')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x880b1a,_0x7ca0('0xd'),JSON[_0x7ca0('0xf')](_0x16bded));if(_0x16bded[_0x7ca0('0x10')]){if(_0x16bded['error'][_0x7ca0('0x11')]===0x1f4){logger[_0x7ca0('0x10')](_0x7ca0('0x12'),_0x880b1a,_0x16bded[_0x7ca0('0x10')][_0x7ca0('0x13')]);return _0x5448bf(_0x16bded['error'][_0x7ca0('0x13')]);}logger[_0x7ca0('0x10')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x880b1a,_0x16bded[_0x7ca0('0x10')]['message']);return _0x548d0f(_0x16bded[_0x7ca0('0x10')][_0x7ca0('0x13')]);}else{logger['info'](_0x7ca0('0x12'),_0x880b1a,_0x7ca0('0xd'));_0x548d0f(_0x16bded['result']['message']);}})[_0x7ca0('0x14')](function(_0x4b978f){logger[_0x7ca0('0x10')](_0x7ca0('0x12'),_0x880b1a,_0x4b978f);_0x5448bf(_0x4b978f);});});}exports['VerifyAdditionalPhones']=function(_0x37399b){var _0x1b58f1=this;return new Promise(function(_0x59428b,_0x41dcba){return db[_0x7ca0('0x15')][_0x7ca0('0x16')]({'raw':!![],'where':{'ContactId':_0x37399b[_0x7ca0('0x17')][_0x7ca0('0x18')],'ListId':_0x37399b['body']['ListId'],'VoiceQueueId':_0x37399b[_0x7ca0('0x17')][_0x7ca0('0x19')]===undefined?null:_0x37399b['body'][_0x7ca0('0x19')],'CampaignId':_0x37399b[_0x7ca0('0x17')][_0x7ca0('0x1a')]===undefined?null:_0x37399b[_0x7ca0('0x17')][_0x7ca0('0x1a')]}})[_0x7ca0('0xb')](function(_0x1f68df){if(_0x1f68df!=null){return db[_0x7ca0('0x1b')][_0x7ca0('0x16')]({'raw':!![],'where':{'CmHopperId':_0x1f68df['id'],'OrderBy':{'$gt':_0x1f68df['OrderBy']}},'order':[[_0x7ca0('0x1c'),'ASC']]})[_0x7ca0('0xb')](function(_0x4727b1){var _0x34e853=0x0;if(_0x4727b1){if(_0x4727b1['countbusyretry']+_0x4727b1['countcongestionretry']+_0x4727b1[_0x7ca0('0x1d')]+_0x4727b1[_0x7ca0('0x1e')]+_0x4727b1[_0x7ca0('0x1f')]+_0x4727b1['countabandonedretry']+_0x4727b1['countmachineretry']+_0x4727b1[_0x7ca0('0x20')]<_0x37399b[_0x7ca0('0x21')][_0x7ca0('0x22')])_0x34e853=0x1;_0x59428b({'additional':_0x34e853});}else{return db['CmHopperAdditionalPhone'][_0x7ca0('0x16')]({'raw':!![],'where':{'CmHopperId':_0x1f68df['id']},'order':[['OrderBy',_0x7ca0('0x23')]]})[_0x7ca0('0xb')](function(_0x4d6b39){var _0x3e7761=0x0;if(_0x4d6b39){if(_0x4d6b39[_0x7ca0('0x24')]+_0x4d6b39[_0x7ca0('0x25')]+_0x4d6b39[_0x7ca0('0x1d')]+_0x4d6b39[_0x7ca0('0x1e')]+_0x4d6b39[_0x7ca0('0x1f')]+_0x4d6b39[_0x7ca0('0x26')]+_0x4d6b39[_0x7ca0('0x27')]+_0x4d6b39[_0x7ca0('0x20')]<_0x37399b[_0x7ca0('0x21')][_0x7ca0('0x22')])_0x3e7761=0x1;_0x59428b({'additional':_0x3e7761});}else{_0x59428b({'additional':0x0});}})[_0x7ca0('0x14')](function(_0x1bdca5){logger[_0x7ca0('0x10')](_0x7ca0('0x28'),_0x1bdca5[_0x7ca0('0x13')]);_0x41dcba(_0x1b58f1[_0x7ca0('0x10')](0x1f4,_0x1bdca5['message']));});}})[_0x7ca0('0x14')](function(_0x44b797){logger['error'](_0x7ca0('0x28'),_0x44b797[_0x7ca0('0x13')]);_0x41dcba(_0x1b58f1['error'](0x1f4,_0x44b797[_0x7ca0('0x13')]));});}else _0x59428b({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x376044){var _0x516460=this;return new Promise(function(_0x42b350,_0x249763){return db['CmHopper'][_0x7ca0('0x16')]({'raw':!![],'where':{'ContactId':_0x376044[_0x7ca0('0x17')][_0x7ca0('0x18')],'ListId':_0x376044[_0x7ca0('0x17')][_0x7ca0('0x29')],'VoiceQueueId':_0x376044[_0x7ca0('0x17')]['VoiceQueueId']===undefined?null:_0x376044[_0x7ca0('0x17')][_0x7ca0('0x19')],'CampaignId':_0x376044[_0x7ca0('0x17')][_0x7ca0('0x1a')]===undefined?null:_0x376044[_0x7ca0('0x17')]['CampaignId']}})[_0x7ca0('0xb')](function(_0x14a339){if(_0x14a339!=null){return db['CmHopperAdditionalPhone'][_0x7ca0('0x16')]({'raw':!![],'where':{'CmHopperId':_0x14a339['id'],'OrderBy':{'$gte':_0x14a339[_0x7ca0('0x1c')]}},'order':[[_0x7ca0('0x1c'),'ASC']]})[_0x7ca0('0xb')](function(_0x3db31d){if(_0x3db31d)return activateAdditionalPhone(_0x14a339,_0x376044['body'],_0x3db31d,_0x376044[_0x7ca0('0x2a')],_0x376044[_0x7ca0('0x2b')])[_0x7ca0('0xb')](function(_0x4cfa0c){_0x42b350(_0x4cfa0c);});else{return db[_0x7ca0('0x1b')][_0x7ca0('0x16')]({'raw':!![],'where':{'CmHopperId':_0x14a339['id']},'order':[[_0x7ca0('0x1c'),_0x7ca0('0x23')]]})['then'](function(_0x5e3904){if(_0x5e3904)return activateAdditionalPhone(_0x14a339,_0x376044[_0x7ca0('0x17')],_0x5e3904,_0x376044[_0x7ca0('0x2a')],_0x376044['waitTime'])[_0x7ca0('0xb')](function(_0x4ad489){_0x42b350(_0x4ad489);});else{_0x42b350({'id':_0x14a339['id'],'phone':''});}})[_0x7ca0('0x14')](function(_0xf1eb19){logger[_0x7ca0('0x10')](_0x7ca0('0x28'),_0xf1eb19['message']);_0x249763(_0x516460[_0x7ca0('0x10')](0x1f4,_0xf1eb19[_0x7ca0('0x13')]));});}})[_0x7ca0('0x14')](function(_0x57c8a8){logger[_0x7ca0('0x10')]('VerifyAdditionalPhones',_0x57c8a8[_0x7ca0('0x13')]);_0x249763(_0x516460[_0x7ca0('0x10')](0x1f4,_0x57c8a8['message']));});}else _0x42b350(0x1);});});};function activateAdditionalPhone(_0x376c49,_0x5ea2b1,_0x34f229,_0x1b1dd6,_0x494f32){return new Promise(function(_0x27e9d4,_0x5e7e74){var _0x8aa037;if(_[_0x7ca0('0x2c')](_0x34f229[_0x7ca0('0x2d')])){_0x34f229['scheduledat']=moment();}if(moment()>moment(_0x34f229[_0x7ca0('0x2d')])){_0x8aa037=moment()[_0x7ca0('0x2e')](_0x494f32||0x3,'minutes');}else{if(_0x34f229[_0x7ca0('0x1c')]==0x0){_0x8aa037=moment(_0x34f229['scheduledat']);}else{_0x8aa037=moment()[_0x7ca0('0x2e')](_0x494f32||0x3,_0x7ca0('0x2f'));}}if(_[_0x7ca0('0x2c')](_0x8aa037)){_0x8aa037=moment()[_0x7ca0('0x2e')](_0x494f32||0x3,'minutes');}var _0x1aa58c={'phone':_0x376c49['phone'],'active':0x0,'OrderBy':_[_0x7ca0('0x2c')](_0x376c49[_0x7ca0('0x1c')])?0x0:_0x376c49[_0x7ca0('0x1c')],'scheduledat':moment()['add'](_0x1b1dd6||0x1,_0x7ca0('0x2f')),'countbusyretry':_0x5ea2b1[_0x7ca0('0x24')],'countcongestionretry':_0x5ea2b1[_0x7ca0('0x25')],'countnoanswerretry':_0x5ea2b1[_0x7ca0('0x1d')],'countnosuchnumberretry':_0x5ea2b1[_0x7ca0('0x1e')],'countdropretry':_0x5ea2b1[_0x7ca0('0x1f')],'countabandonedretry':_0x5ea2b1[_0x7ca0('0x26')],'countmachineretry':_0x5ea2b1['countmachineretry'],'countagentrejectretry':_0x5ea2b1['countagentrejectretry'],'createdAt':_0x5ea2b1['createdAt'],'updatedAt':_0x5ea2b1[_0x7ca0('0x30')]};var _0x2f2313={'CmHopperId':_0x376c49['id'],'phone':_0x34f229[_0x7ca0('0x31')],'active':0x0,'OrderBy':_[_0x7ca0('0x2c')](_0x34f229[_0x7ca0('0x1c')])?0x0:_0x34f229[_0x7ca0('0x1c')],'scheduledat':_0x8aa037,'countbusyretry':_0x34f229[_0x7ca0('0x24')],'countcongestionretry':_0x34f229[_0x7ca0('0x25')],'countnoanswerretry':_0x34f229['countnoanswerretry'],'countnosuchnumberretry':_0x34f229[_0x7ca0('0x1e')],'countdropretry':_0x34f229[_0x7ca0('0x1f')],'countabandonedretry':_0x34f229[_0x7ca0('0x26')],'countmachineretry':_0x34f229[_0x7ca0('0x27')],'countagentrejectretry':_0x34f229[_0x7ca0('0x20')],'createdAt':_0x34f229[_0x7ca0('0x32')],'updatedAt':_0x34f229[_0x7ca0('0x30')]};return db[_0x7ca0('0x33')]['transaction'](function(_0x13e6fb){return db[_0x7ca0('0x1b')][_0x7ca0('0x34')](_0x1aa58c,{'where':{'id':_0x34f229['id']}},{'transaction':_0x13e6fb})[_0x7ca0('0xb')](function(){return db[_0x7ca0('0x15')][_0x7ca0('0x34')](_0x2f2313,{'where':{'id':_0x376c49['id']}},{'transaction':_0x13e6fb});});})[_0x7ca0('0xb')](function(_0x20cb60){_0x27e9d4({'id':_0x376c49['id'],'phone':_0x34f229[_0x7ca0('0x31')]});})[_0x7ca0('0x14')](function(_0x33b61e){logger['error'](_0x7ca0('0x35'),_0x33b61e[_0x7ca0('0x13')]);_0x5e7e74({'error':_0x33b61e[_0x7ca0('0x13')]});});});}exports[_0x7ca0('0x36')]=function(_0x518a02){var _0x50092c=this;return new Promise(function(_0x11ce03,_0x79764b){return db[_0x7ca0('0x15')][_0x7ca0('0x34')](_0x518a02[_0x7ca0('0x17')][_0x7ca0('0x37')],{'where':{'id':_0x518a02[_0x7ca0('0x17')]['id']}})['then'](function(_0x202d21){_0x11ce03(_0x202d21);})['catch'](function(_0x38caab){logger['error'](_0x7ca0('0x36'),_0x38caab[_0x7ca0('0x13')]);_0x79764b(_0x50092c[_0x7ca0('0x10')](0x1f4,_0x38caab[_0x7ca0('0x13')]));});});};