Built motion from commit 9d0783e6.|2.6.13
[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 _0xb4c2=['countnosuchnumberretry','countdropretry','countagentrejectretry','entity','dialGlobalMaxRetry','ASC','countabandonedretry','countmachineretry','duration','waitTime','isNil','scheduledat','add','minutes','createdAt','updatedAt','phone','sequelize','update','activateAdditionalPhone','IncrementPreviewCounters','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','VerifyAdditionalPhones','CmHopper','findOne','body','ContactId','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','OrderBy','countbusyretry','countcongestionretry','countnoanswerretry'];(function(_0x8d692,_0x16d6a2){var _0x22b7be=function(_0x5cb4f0){while(--_0x5cb4f0){_0x8d692['push'](_0x8d692['shift']());}};_0x22b7be(++_0x16d6a2);}(_0xb4c2,0x1d5));var _0x2b4c=function(_0x4847c6,_0x1b4ee2){_0x4847c6=_0x4847c6-0x0;var _0xbc4019=_0xb4c2[_0x4847c6];return _0xbc4019;};'use strict';var _=require(_0x2b4c('0x0'));var util=require('util');var moment=require(_0x2b4c('0x1'));var BPromise=require(_0x2b4c('0x2'));var rs=require(_0x2b4c('0x3'));var fs=require('fs');var Redis=require(_0x2b4c('0x4'));var db=require(_0x2b4c('0x5'))['db'];var utils=require(_0x2b4c('0x6'));var logger=require('../../config/logger')(_0x2b4c('0x7'));var config=require(_0x2b4c('0x8'));var jayson=require(_0x2b4c('0x9'));var client=jayson['client'][_0x2b4c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x7d184e,_0x3e2c41,_0x9d9b59){return new BPromise(function(_0x22fc98,_0x314814){return client['request'](_0x7d184e,_0x9d9b59)[_0x2b4c('0xb')](function(_0xedc4e6){logger[_0x2b4c('0xc')](_0x2b4c('0xd'),_0x3e2c41,_0x2b4c('0xe'));logger[_0x2b4c('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s',_0x3e2c41,_0x2b4c('0xe'),JSON[_0x2b4c('0x10')](_0xedc4e6));if(_0xedc4e6[_0x2b4c('0x11')]){if(_0xedc4e6[_0x2b4c('0x11')][_0x2b4c('0x12')]===0x1f4){logger['error'](_0x2b4c('0xd'),_0x3e2c41,_0xedc4e6['error'][_0x2b4c('0x13')]);return _0x314814(_0xedc4e6[_0x2b4c('0x11')][_0x2b4c('0x13')]);}logger[_0x2b4c('0x11')](_0x2b4c('0xd'),_0x3e2c41,_0xedc4e6[_0x2b4c('0x11')]['message']);return _0x22fc98(_0xedc4e6[_0x2b4c('0x11')][_0x2b4c('0x13')]);}else{logger['info'](_0x2b4c('0xd'),_0x3e2c41,_0x2b4c('0xe'));_0x22fc98(_0xedc4e6[_0x2b4c('0x14')][_0x2b4c('0x13')]);}})[_0x2b4c('0x15')](function(_0x502e13){logger[_0x2b4c('0x11')](_0x2b4c('0xd'),_0x3e2c41,_0x502e13);_0x314814(_0x502e13);});});}exports[_0x2b4c('0x16')]=function(_0x526d5a){var _0xb707ca=this;return new Promise(function(_0x36ee51,_0x3db9ed){return db[_0x2b4c('0x17')][_0x2b4c('0x18')]({'raw':!![],'where':{'ContactId':_0x526d5a[_0x2b4c('0x19')][_0x2b4c('0x1a')],'ListId':_0x526d5a[_0x2b4c('0x19')][_0x2b4c('0x1b')],'VoiceQueueId':_0x526d5a[_0x2b4c('0x19')][_0x2b4c('0x1c')]===undefined?null:_0x526d5a['body']['VoiceQueueId'],'CampaignId':_0x526d5a[_0x2b4c('0x19')][_0x2b4c('0x1d')]===undefined?null:_0x526d5a[_0x2b4c('0x19')]['CampaignId']}})[_0x2b4c('0xb')](function(_0xd029b9){if(_0xd029b9!=null){return db[_0x2b4c('0x1e')][_0x2b4c('0x18')]({'raw':!![],'where':{'CmHopperId':_0xd029b9['id'],'OrderBy':{'$gt':_0xd029b9[_0x2b4c('0x1f')]}},'order':[[_0x2b4c('0x1f'),'ASC']]})[_0x2b4c('0xb')](function(_0x2b81b0){var _0x50877d=0x0;if(_0x2b81b0){if(_0x2b81b0[_0x2b4c('0x20')]+_0x2b81b0[_0x2b4c('0x21')]+_0x2b81b0[_0x2b4c('0x22')]+_0x2b81b0[_0x2b4c('0x23')]+_0x2b81b0[_0x2b4c('0x24')]+_0x2b81b0['countabandonedretry']+_0x2b81b0['countmachineretry']+_0x2b81b0[_0x2b4c('0x25')]<_0x526d5a[_0x2b4c('0x26')][_0x2b4c('0x27')])_0x50877d=0x1;_0x36ee51({'additional':_0x50877d});}else{return db['CmHopperAdditionalPhone']['findOne']({'raw':!![],'where':{'CmHopperId':_0xd029b9['id']},'order':[[_0x2b4c('0x1f'),_0x2b4c('0x28')]]})[_0x2b4c('0xb')](function(_0x914098){var _0x174249=0x0;if(_0x914098){if(_0x914098['countbusyretry']+_0x914098['countcongestionretry']+_0x914098[_0x2b4c('0x22')]+_0x914098[_0x2b4c('0x23')]+_0x914098[_0x2b4c('0x24')]+_0x914098[_0x2b4c('0x29')]+_0x914098[_0x2b4c('0x2a')]+_0x914098['countagentrejectretry']<_0x526d5a[_0x2b4c('0x26')]['dialGlobalMaxRetry'])_0x174249=0x1;_0x36ee51({'additional':_0x174249});}else{_0x36ee51({'additional':0x0});}})[_0x2b4c('0x15')](function(_0xf79c1){logger[_0x2b4c('0x11')](_0x2b4c('0x16'),_0xf79c1[_0x2b4c('0x13')]);_0x3db9ed(_0xb707ca[_0x2b4c('0x11')](0x1f4,_0xf79c1[_0x2b4c('0x13')]));});}})[_0x2b4c('0x15')](function(_0x15fd2f){logger[_0x2b4c('0x11')](_0x2b4c('0x16'),_0x15fd2f[_0x2b4c('0x13')]);_0x3db9ed(_0xb707ca['error'](0x1f4,_0x15fd2f[_0x2b4c('0x13')]));});}else _0x36ee51({'additional':0x0});});});};exports['SwapAdditionalPhones']=function(_0x5596b5){var _0x54e962=this;return new Promise(function(_0x5b9ad4,_0x1a80cc){return db[_0x2b4c('0x17')][_0x2b4c('0x18')]({'raw':!![],'where':{'ContactId':_0x5596b5['body'][_0x2b4c('0x1a')],'ListId':_0x5596b5[_0x2b4c('0x19')][_0x2b4c('0x1b')],'VoiceQueueId':_0x5596b5[_0x2b4c('0x19')][_0x2b4c('0x1c')]===undefined?null:_0x5596b5[_0x2b4c('0x19')][_0x2b4c('0x1c')],'CampaignId':_0x5596b5['body'][_0x2b4c('0x1d')]===undefined?null:_0x5596b5[_0x2b4c('0x19')][_0x2b4c('0x1d')]}})[_0x2b4c('0xb')](function(_0x33dc09){if(_0x33dc09!=null){return db[_0x2b4c('0x1e')][_0x2b4c('0x18')]({'raw':!![],'where':{'CmHopperId':_0x33dc09['id'],'OrderBy':{'$gte':_0x33dc09[_0x2b4c('0x1f')]}},'order':[[_0x2b4c('0x1f'),_0x2b4c('0x28')]]})[_0x2b4c('0xb')](function(_0x40524f){if(_0x40524f)return activateAdditionalPhone(_0x33dc09,_0x5596b5['body'],_0x40524f,_0x5596b5[_0x2b4c('0x2b')],_0x5596b5[_0x2b4c('0x2c')])['then'](function(_0x102838){_0x5b9ad4(_0x102838);});else{return db[_0x2b4c('0x1e')][_0x2b4c('0x18')]({'raw':!![],'where':{'CmHopperId':_0x33dc09['id']},'order':[[_0x2b4c('0x1f'),_0x2b4c('0x28')]]})[_0x2b4c('0xb')](function(_0x56a803){if(_0x56a803)return activateAdditionalPhone(_0x33dc09,_0x5596b5[_0x2b4c('0x19')],_0x56a803,_0x5596b5['duration'],_0x5596b5[_0x2b4c('0x2c')])[_0x2b4c('0xb')](function(_0x281c30){_0x5b9ad4(_0x281c30);});else{_0x5b9ad4({'id':_0x33dc09['id'],'phone':''});}})[_0x2b4c('0x15')](function(_0x428bf4){logger[_0x2b4c('0x11')](_0x2b4c('0x16'),_0x428bf4['message']);_0x1a80cc(_0x54e962[_0x2b4c('0x11')](0x1f4,_0x428bf4['message']));});}})['catch'](function(_0x4fb39e){logger[_0x2b4c('0x11')](_0x2b4c('0x16'),_0x4fb39e[_0x2b4c('0x13')]);_0x1a80cc(_0x54e962[_0x2b4c('0x11')](0x1f4,_0x4fb39e[_0x2b4c('0x13')]));});}else _0x5b9ad4(0x1);});});};function activateAdditionalPhone(_0x2caa3b,_0x4e8c45,_0x972f20,_0x30f2fe,_0x38e3cc){return new Promise(function(_0x45cb6d,_0x14659c){var _0x47dbf4;if(_[_0x2b4c('0x2d')](_0x972f20[_0x2b4c('0x2e')])){_0x972f20['scheduledat']=moment();}if(moment()>moment(_0x972f20['scheduledat'])){_0x47dbf4=moment()[_0x2b4c('0x2f')](_0x38e3cc||0x3,'minutes');}else{if(_0x972f20[_0x2b4c('0x1f')]==0x0){_0x47dbf4=moment(_0x972f20[_0x2b4c('0x2e')]);}else{_0x47dbf4=moment()[_0x2b4c('0x2f')](_0x38e3cc||0x3,'minutes');}}if(_[_0x2b4c('0x2d')](_0x47dbf4)){_0x47dbf4=moment()[_0x2b4c('0x2f')](_0x38e3cc||0x3,_0x2b4c('0x30'));}var _0x2d02be={'phone':_0x2caa3b['phone'],'active':0x0,'OrderBy':_[_0x2b4c('0x2d')](_0x2caa3b[_0x2b4c('0x1f')])?0x0:_0x2caa3b['OrderBy'],'scheduledat':moment()[_0x2b4c('0x2f')](_0x30f2fe||0x1,_0x2b4c('0x30')),'countbusyretry':_0x4e8c45[_0x2b4c('0x20')],'countcongestionretry':_0x4e8c45['countcongestionretry'],'countnoanswerretry':_0x4e8c45[_0x2b4c('0x22')],'countnosuchnumberretry':_0x4e8c45[_0x2b4c('0x23')],'countdropretry':_0x4e8c45[_0x2b4c('0x24')],'countabandonedretry':_0x4e8c45[_0x2b4c('0x29')],'countmachineretry':_0x4e8c45[_0x2b4c('0x2a')],'countagentrejectretry':_0x4e8c45[_0x2b4c('0x25')],'createdAt':_0x4e8c45[_0x2b4c('0x31')],'updatedAt':_0x4e8c45[_0x2b4c('0x32')]};var _0x3a1038={'CmHopperId':_0x2caa3b['id'],'phone':_0x972f20[_0x2b4c('0x33')],'active':0x0,'OrderBy':_[_0x2b4c('0x2d')](_0x972f20['OrderBy'])?0x0:_0x972f20['OrderBy'],'scheduledat':_0x47dbf4,'countbusyretry':_0x972f20[_0x2b4c('0x20')],'countcongestionretry':_0x972f20[_0x2b4c('0x21')],'countnoanswerretry':_0x972f20[_0x2b4c('0x22')],'countnosuchnumberretry':_0x972f20[_0x2b4c('0x23')],'countdropretry':_0x972f20[_0x2b4c('0x24')],'countabandonedretry':_0x972f20[_0x2b4c('0x29')],'countmachineretry':_0x972f20['countmachineretry'],'countagentrejectretry':_0x972f20[_0x2b4c('0x25')],'createdAt':_0x972f20[_0x2b4c('0x31')],'updatedAt':_0x972f20['updatedAt']};return db[_0x2b4c('0x34')]['transaction'](function(_0xc10d22){return db[_0x2b4c('0x1e')][_0x2b4c('0x35')](_0x2d02be,{'where':{'id':_0x972f20['id']}},{'transaction':_0xc10d22})[_0x2b4c('0xb')](function(){return db['CmHopper'][_0x2b4c('0x35')](_0x3a1038,{'where':{'id':_0x2caa3b['id']}},{'transaction':_0xc10d22});});})[_0x2b4c('0xb')](function(_0x588235){_0x45cb6d({'id':_0x2caa3b['id'],'phone':_0x972f20['phone']});})['catch'](function(_0x202aed){logger['error'](_0x2b4c('0x36'),_0x202aed[_0x2b4c('0x13')]);_0x14659c({'error':_0x202aed[_0x2b4c('0x13')]});});});}exports[_0x2b4c('0x37')]=function(_0x51dabe){var _0xc9b80b=this;return new Promise(function(_0x47e6b5,_0x13a1d6){return db['CmHopper'][_0x2b4c('0x35')](_0x51dabe[_0x2b4c('0x19')]['field'],{'where':{'id':_0x51dabe[_0x2b4c('0x19')]['id']}})[_0x2b4c('0xb')](function(_0x14e816){_0x47e6b5(_0x14e816);})[_0x2b4c('0x15')](function(_0x51dc37){logger['error'](_0x2b4c('0x37'),_0x51dc37['message']);_0x13a1d6(_0xc9b80b['error'](0x1f4,_0x51dc37[_0x2b4c('0x13')]));});});};