Built motion from commit c738b9ac.|2.6.25
[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 _0x7490=['rpc','jayson/promise','client','http','request','then','info','CmHopperAdditionalPhone,\x20%s,\x20%s','request\x20sent','debug','CmHopperAdditionalPhone,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','VerifyAdditionalPhones','body','ContactId','ListId','VoiceQueueId','CampaignId','CmHopperAdditionalPhone','findOne','OrderBy','ASC','countbusyretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','entity','countcongestionretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','SwapAdditionalPhones','CmHopper','duration','waitTime','scheduledat','minutes','add','isNil','phone','createdAt','updatedAt','sequelize','update','activateAdditionalPhone','IncrementPreviewCounters','field','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x13f34e,_0xec65f2){var _0x41e2be=function(_0x49e65c){while(--_0x49e65c){_0x13f34e['push'](_0x13f34e['shift']());}};_0x41e2be(++_0xec65f2);}(_0x7490,0x71));var _0x0749=function(_0x8b82f8,_0x23f7ce){_0x8b82f8=_0x8b82f8-0x0;var _0x316967=_0x7490[_0x8b82f8];return _0x316967;};'use strict';var _=require(_0x0749('0x0'));var util=require(_0x0749('0x1'));var moment=require(_0x0749('0x2'));var BPromise=require(_0x0749('0x3'));var rs=require(_0x0749('0x4'));var fs=require('fs');var Redis=require(_0x0749('0x5'));var db=require(_0x0749('0x6'))['db'];var utils=require(_0x0749('0x7'));var logger=require(_0x0749('0x8'))(_0x0749('0x9'));var config=require('../../config/environment');var jayson=require(_0x0749('0xa'));var client=jayson[_0x0749('0xb')][_0x0749('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e7dde,_0x3cc561,_0x2cd9b2){return new BPromise(function(_0x34aad7,_0x44d302){return client[_0x0749('0xd')](_0x1e7dde,_0x2cd9b2)[_0x0749('0xe')](function(_0x3c0142){logger[_0x0749('0xf')](_0x0749('0x10'),_0x3cc561,_0x0749('0x11'));logger[_0x0749('0x12')](_0x0749('0x13'),_0x3cc561,'request\x20sent',JSON['stringify'](_0x3c0142));if(_0x3c0142[_0x0749('0x14')]){if(_0x3c0142[_0x0749('0x14')][_0x0749('0x15')]===0x1f4){logger['error'](_0x0749('0x10'),_0x3cc561,_0x3c0142[_0x0749('0x14')]['message']);return _0x44d302(_0x3c0142[_0x0749('0x14')]['message']);}logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3cc561,_0x3c0142['error']['message']);return _0x34aad7(_0x3c0142[_0x0749('0x14')][_0x0749('0x16')]);}else{logger[_0x0749('0xf')]('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3cc561,_0x0749('0x11'));_0x34aad7(_0x3c0142[_0x0749('0x17')][_0x0749('0x16')]);}})[_0x0749('0x18')](function(_0x537fd8){logger['error']('CmHopperAdditionalPhone,\x20%s,\x20%s',_0x3cc561,_0x537fd8);_0x44d302(_0x537fd8);});});}exports[_0x0749('0x19')]=function(_0x2a8d18){var _0x2c691a=this;return new Promise(function(_0x53d237,_0x351e43){return db['CmHopper']['findOne']({'raw':!![],'where':{'ContactId':_0x2a8d18[_0x0749('0x1a')][_0x0749('0x1b')],'ListId':_0x2a8d18[_0x0749('0x1a')][_0x0749('0x1c')],'VoiceQueueId':_0x2a8d18['body'][_0x0749('0x1d')]===undefined?null:_0x2a8d18[_0x0749('0x1a')]['VoiceQueueId'],'CampaignId':_0x2a8d18[_0x0749('0x1a')][_0x0749('0x1e')]===undefined?null:_0x2a8d18['body']['CampaignId']}})['then'](function(_0x57fadb){if(_0x57fadb!=null){return db[_0x0749('0x1f')][_0x0749('0x20')]({'raw':!![],'where':{'CmHopperId':_0x57fadb['id'],'OrderBy':{'$gt':_0x57fadb[_0x0749('0x21')]}},'order':[[_0x0749('0x21'),_0x0749('0x22')]]})[_0x0749('0xe')](function(_0x4da267){var _0x562ffd=0x0;if(_0x4da267){if(_0x4da267[_0x0749('0x23')]+_0x4da267['countcongestionretry']+_0x4da267[_0x0749('0x24')]+_0x4da267[_0x0749('0x25')]+_0x4da267[_0x0749('0x26')]+_0x4da267['countabandonedretry']+_0x4da267[_0x0749('0x27')]+_0x4da267['countagentrejectretry']<_0x2a8d18[_0x0749('0x28')]['dialGlobalMaxRetry'])_0x562ffd=0x1;_0x53d237({'additional':_0x562ffd});}else{return db['CmHopperAdditionalPhone'][_0x0749('0x20')]({'raw':!![],'where':{'CmHopperId':_0x57fadb['id']},'order':[[_0x0749('0x21'),_0x0749('0x22')]]})[_0x0749('0xe')](function(_0x1c0a33){var _0x313794=0x0;if(_0x1c0a33){if(_0x1c0a33['countbusyretry']+_0x1c0a33[_0x0749('0x29')]+_0x1c0a33[_0x0749('0x24')]+_0x1c0a33[_0x0749('0x25')]+_0x1c0a33['countdropretry']+_0x1c0a33[_0x0749('0x2a')]+_0x1c0a33[_0x0749('0x27')]+_0x1c0a33[_0x0749('0x2b')]<_0x2a8d18[_0x0749('0x28')][_0x0749('0x2c')])_0x313794=0x1;_0x53d237({'additional':_0x313794});}else{_0x53d237({'additional':0x0});}})[_0x0749('0x18')](function(_0x48a131){logger[_0x0749('0x14')](_0x0749('0x19'),_0x48a131[_0x0749('0x16')]);_0x351e43(_0x2c691a[_0x0749('0x14')](0x1f4,_0x48a131[_0x0749('0x16')]));});}})[_0x0749('0x18')](function(_0xd3be80){logger[_0x0749('0x14')]('VerifyAdditionalPhones',_0xd3be80['message']);_0x351e43(_0x2c691a[_0x0749('0x14')](0x1f4,_0xd3be80[_0x0749('0x16')]));});}else _0x53d237({'additional':0x0});});});};exports[_0x0749('0x2d')]=function(_0x290a40){var _0x4a5d94=this;return new Promise(function(_0x5a1b9a,_0x574776){return db[_0x0749('0x2e')][_0x0749('0x20')]({'raw':!![],'where':{'ContactId':_0x290a40[_0x0749('0x1a')][_0x0749('0x1b')],'ListId':_0x290a40[_0x0749('0x1a')]['ListId'],'VoiceQueueId':_0x290a40[_0x0749('0x1a')]['VoiceQueueId']===undefined?null:_0x290a40[_0x0749('0x1a')][_0x0749('0x1d')],'CampaignId':_0x290a40[_0x0749('0x1a')][_0x0749('0x1e')]===undefined?null:_0x290a40[_0x0749('0x1a')][_0x0749('0x1e')]}})[_0x0749('0xe')](function(_0x491bba){if(_0x491bba!=null){return db[_0x0749('0x1f')][_0x0749('0x20')]({'raw':!![],'where':{'CmHopperId':_0x491bba['id'],'OrderBy':{'$gte':_0x491bba[_0x0749('0x21')]}},'order':[[_0x0749('0x21'),_0x0749('0x22')]]})[_0x0749('0xe')](function(_0x1f7c8c){if(_0x1f7c8c)return activateAdditionalPhone(_0x491bba,_0x290a40['body'],_0x1f7c8c,_0x290a40[_0x0749('0x2f')],_0x290a40[_0x0749('0x30')])['then'](function(_0x4e8451){_0x5a1b9a(_0x4e8451);});else{return db[_0x0749('0x1f')][_0x0749('0x20')]({'raw':!![],'where':{'CmHopperId':_0x491bba['id']},'order':[[_0x0749('0x21'),_0x0749('0x22')]]})[_0x0749('0xe')](function(_0x1a6cf8){if(_0x1a6cf8)return activateAdditionalPhone(_0x491bba,_0x290a40[_0x0749('0x1a')],_0x1a6cf8,_0x290a40[_0x0749('0x2f')],_0x290a40[_0x0749('0x30')])['then'](function(_0x34b6c6){_0x5a1b9a(_0x34b6c6);});else{_0x5a1b9a({'id':_0x491bba['id'],'phone':''});}})[_0x0749('0x18')](function(_0x501f04){logger[_0x0749('0x14')]('VerifyAdditionalPhones',_0x501f04['message']);_0x574776(_0x4a5d94[_0x0749('0x14')](0x1f4,_0x501f04[_0x0749('0x16')]));});}})[_0x0749('0x18')](function(_0x3236a2){logger[_0x0749('0x14')](_0x0749('0x19'),_0x3236a2['message']);_0x574776(_0x4a5d94[_0x0749('0x14')](0x1f4,_0x3236a2['message']));});}else _0x5a1b9a(0x1);});});};function activateAdditionalPhone(_0x2465bd,_0x599376,_0x12c97b,_0x39dfbc,_0x1495b5){return new Promise(function(_0x18bf01,_0x1f7024){var _0x58b445;if(_['isNil'](_0x12c97b[_0x0749('0x31')])){_0x12c97b[_0x0749('0x31')]=moment();}if(moment()>moment(_0x12c97b[_0x0749('0x31')])){_0x58b445=moment()['add'](_0x1495b5||0x3,_0x0749('0x32'));}else{if(_0x12c97b[_0x0749('0x21')]==0x0){_0x58b445=moment(_0x12c97b[_0x0749('0x31')]);}else{_0x58b445=moment()[_0x0749('0x33')](_0x1495b5||0x3,_0x0749('0x32'));}}if(_[_0x0749('0x34')](_0x58b445)){_0x58b445=moment()[_0x0749('0x33')](_0x1495b5||0x3,_0x0749('0x32'));}var _0xb74e20={'phone':_0x2465bd[_0x0749('0x35')],'active':0x0,'OrderBy':_[_0x0749('0x34')](_0x2465bd[_0x0749('0x21')])?0x0:_0x2465bd['OrderBy'],'scheduledat':moment()[_0x0749('0x33')](_0x39dfbc||0x1,_0x0749('0x32')),'countbusyretry':_0x599376['countbusyretry'],'countcongestionretry':_0x599376[_0x0749('0x29')],'countnoanswerretry':_0x599376['countnoanswerretry'],'countnosuchnumberretry':_0x599376[_0x0749('0x25')],'countdropretry':_0x599376[_0x0749('0x26')],'countabandonedretry':_0x599376[_0x0749('0x2a')],'countmachineretry':_0x599376[_0x0749('0x27')],'countagentrejectretry':_0x599376[_0x0749('0x2b')],'createdAt':_0x599376[_0x0749('0x36')],'updatedAt':_0x599376[_0x0749('0x37')]};var _0x52d73d={'CmHopperId':_0x2465bd['id'],'phone':_0x12c97b[_0x0749('0x35')],'active':0x0,'OrderBy':_[_0x0749('0x34')](_0x12c97b['OrderBy'])?0x0:_0x12c97b[_0x0749('0x21')],'scheduledat':_0x58b445,'countbusyretry':_0x12c97b[_0x0749('0x23')],'countcongestionretry':_0x12c97b[_0x0749('0x29')],'countnoanswerretry':_0x12c97b[_0x0749('0x24')],'countnosuchnumberretry':_0x12c97b[_0x0749('0x25')],'countdropretry':_0x12c97b['countdropretry'],'countabandonedretry':_0x12c97b[_0x0749('0x2a')],'countmachineretry':_0x12c97b[_0x0749('0x27')],'countagentrejectretry':_0x12c97b['countagentrejectretry'],'createdAt':_0x12c97b[_0x0749('0x36')],'updatedAt':_0x12c97b[_0x0749('0x37')]};return db[_0x0749('0x38')]['transaction'](function(_0x572f2e){return db[_0x0749('0x1f')][_0x0749('0x39')](_0xb74e20,{'where':{'id':_0x12c97b['id']}},{'transaction':_0x572f2e})['then'](function(){return db[_0x0749('0x2e')][_0x0749('0x39')](_0x52d73d,{'where':{'id':_0x2465bd['id']}},{'transaction':_0x572f2e});});})[_0x0749('0xe')](function(_0xc5bab5){_0x18bf01({'id':_0x2465bd['id'],'phone':_0x12c97b[_0x0749('0x35')]});})[_0x0749('0x18')](function(_0x315d3b){logger['error'](_0x0749('0x3a'),_0x315d3b['message']);_0x1f7024({'error':_0x315d3b[_0x0749('0x16')]});});});}exports[_0x0749('0x3b')]=function(_0x5cd1e2){var _0x2a2bf2=this;return new Promise(function(_0x5641dd,_0x203829){return db['CmHopper'][_0x0749('0x39')](_0x5cd1e2[_0x0749('0x1a')][_0x0749('0x3c')],{'where':{'id':_0x5cd1e2[_0x0749('0x1a')]['id']}})[_0x0749('0xe')](function(_0x3c7c4d){_0x5641dd(_0x3c7c4d);})[_0x0749('0x18')](function(_0x113186){logger[_0x0749('0x14')](_0x0749('0x3b'),_0x113186[_0x0749('0x16')]);_0x203829(_0x2a2bf2['error'](0x1f4,_0x113186[_0x0749('0x16')]));});});};