62036f87b80cf8d4bdf689c8cd104b3ffa1aa956
[motion2.git] / server / api / cmHopper / cmHopper.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 _0x6e6a=['stringify','ShowCmHopper','CreateCmHopper','create','body','raw','update','UpdateCmHopper','DestroyCmHopper','destroy','GetContactDialer','CmContact','sequelize','transaction','order','LOCK','UPDATE','keys','User','name','length','includes','UserId','push','MoveContactManagedDialer','CmHopperFinal','CountReScheduled','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','describe','all','GetContactRecallMe','GetCmHopperPreview','Contact','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','GetCmHopper','CmHopper','findAll','options','where','limit','include','model','attributes','map'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x6e6a,0xb3));var _0xa6e6=function(_0x1dc218,_0x505a00){_0x1dc218=_0x1dc218-0x0;var _0x48b7b7=_0x6e6a[_0x1dc218];return _0x48b7b7;};'use strict';var _=require(_0xa6e6('0x0'));var util=require(_0xa6e6('0x1'));var moment=require(_0xa6e6('0x2'));var BPromise=require(_0xa6e6('0x3'));var rs=require(_0xa6e6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa6e6('0x5'))['db'];var utils=require(_0xa6e6('0x6'));var logger=require('../../config/logger')(_0xa6e6('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xa6e6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3cb9ec,_0x9a4046,_0x296e45){return new BPromise(function(_0x41a87a,_0x2cb8ef){return client[_0xa6e6('0x9')](_0x3cb9ec,_0x296e45)[_0xa6e6('0xa')](function(_0x150d89){logger[_0xa6e6('0xb')](_0xa6e6('0xc'),_0x9a4046,_0xa6e6('0xd'));logger[_0xa6e6('0xe')](_0xa6e6('0xf'),_0x9a4046,'request\x20sent',JSON['stringify'](_0x150d89));if(_0x150d89['error']){if(_0x150d89['error'][_0xa6e6('0x10')]===0x1f4){logger[_0xa6e6('0x11')](_0xa6e6('0xc'),_0x9a4046,_0x150d89[_0xa6e6('0x11')][_0xa6e6('0x12')]);return _0x2cb8ef(_0x150d89['error'][_0xa6e6('0x12')]);}logger['error'](_0xa6e6('0xc'),_0x9a4046,_0x150d89[_0xa6e6('0x11')][_0xa6e6('0x12')]);return _0x41a87a(_0x150d89[_0xa6e6('0x11')][_0xa6e6('0x12')]);}else{logger[_0xa6e6('0xb')](_0xa6e6('0xc'),_0x9a4046,_0xa6e6('0xd'));_0x41a87a(_0x150d89[_0xa6e6('0x13')][_0xa6e6('0x12')]);}})[_0xa6e6('0x14')](function(_0x9f9d17){logger[_0xa6e6('0x11')]('CmHopper,\x20%s,\x20%s',_0x9a4046,_0x9f9d17);_0x2cb8ef(_0x9f9d17);});});}exports[_0xa6e6('0x15')]=function(_0x47e386){var _0x4fe022=this;return new Promise(function(_0x121c2f,_0x51f9f2){return db[_0xa6e6('0x16')][_0xa6e6('0x17')]({'raw':_0x47e386['options']?_0x47e386[_0xa6e6('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x47e386[_0xa6e6('0x18')]?_0x47e386[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'attributes':_0x47e386['options']?_0x47e386[_0xa6e6('0x18')]['attributes']||null:null,'limit':_0x47e386[_0xa6e6('0x18')]?_0x47e386['options'][_0xa6e6('0x1a')]||null:null,'include':_0x47e386['options']?_0x47e386['options'][_0xa6e6('0x1b')]?_['map'](_0x47e386['options'][_0xa6e6('0x1b')],function(_0x471108){return{'model':db[_0x471108[_0xa6e6('0x1c')]],'as':_0x471108['as'],'attributes':_0x471108[_0xa6e6('0x1d')],'include':_0x471108['include']?_[_0xa6e6('0x1e')](_0x471108[_0xa6e6('0x1b')],function(_0x274d33){return{'model':db[_0x274d33[_0xa6e6('0x1c')]],'as':_0x274d33['as'],'attributes':_0x274d33[_0xa6e6('0x1d')],'include':_0x274d33[_0xa6e6('0x1b')]?_['map'](_0x274d33[_0xa6e6('0x1b')],function(_0x2ae1fe){return{'model':db[_0x2ae1fe[_0xa6e6('0x1c')]],'as':_0x2ae1fe['as'],'attributes':_0x2ae1fe[_0xa6e6('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa6e6('0xa')](function(_0x28c61c){logger['info'](_0xa6e6('0x15'),_0x47e386);logger[_0xa6e6('0xe')]('GetCmHopper',_0x47e386,JSON[_0xa6e6('0x1f')](_0x28c61c));_0x121c2f(_0x28c61c);})['catch'](function(_0x2c68f0){logger[_0xa6e6('0x11')]('GetCmHopper',_0x2c68f0[_0xa6e6('0x12')],_0x47e386);_0x51f9f2(_0x4fe022['error'](0x1f4,_0x2c68f0[_0xa6e6('0x12')]));});});};exports[_0xa6e6('0x20')]=function(_0x197f73){var _0x43c2f2=this;return new Promise(function(_0x3003b7,_0x1a3765){return db[_0xa6e6('0x16')]['find']({'raw':_0x197f73['options']?_0x197f73[_0xa6e6('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x197f73[_0xa6e6('0x18')]?_0x197f73[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'attributes':_0x197f73['options']?_0x197f73[_0xa6e6('0x18')][_0xa6e6('0x1d')]||null:null,'include':_0x197f73[_0xa6e6('0x18')]?_0x197f73[_0xa6e6('0x18')][_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x197f73[_0xa6e6('0x18')][_0xa6e6('0x1b')],function(_0x5342ac){return{'model':db[_0x5342ac[_0xa6e6('0x1c')]],'as':_0x5342ac['as'],'attributes':_0x5342ac[_0xa6e6('0x1d')],'include':_0x5342ac[_0xa6e6('0x1b')]?_['map'](_0x5342ac[_0xa6e6('0x1b')],function(_0x1435f9){return{'model':db[_0x1435f9[_0xa6e6('0x1c')]],'as':_0x1435f9['as'],'attributes':_0x1435f9[_0xa6e6('0x1d')],'include':_0x1435f9[_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x1435f9[_0xa6e6('0x1b')],function(_0x35c413){return{'model':db[_0x35c413['model']],'as':_0x35c413['as'],'attributes':_0x35c413[_0xa6e6('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa6e6('0xa')](function(_0x3bbb27){logger['info'](_0xa6e6('0x20'),_0x197f73);logger['debug'](_0xa6e6('0x20'),_0x197f73,JSON[_0xa6e6('0x1f')](_0x3bbb27));_0x3003b7(_0x3bbb27);})[_0xa6e6('0x14')](function(_0x1f9378){logger[_0xa6e6('0x11')]('ShowCmHopper',_0x1f9378[_0xa6e6('0x12')],_0x197f73);_0x1a3765(_0x43c2f2[_0xa6e6('0x11')](0x1f4,_0x1f9378[_0xa6e6('0x12')]));});});};exports[_0xa6e6('0x21')]=function(_0x1aa962){var _0x573b14=this;return new Promise(function(_0x57193c,_0x1b23b7){return db['CmHopper'][_0xa6e6('0x22')](_0x1aa962[_0xa6e6('0x23')],{'raw':_0x1aa962[_0xa6e6('0x18')]?_0x1aa962[_0xa6e6('0x18')][_0xa6e6('0x24')]===undefined?!![]:![]:!![]})[_0xa6e6('0xa')](function(_0x5d9f82){logger['info'](_0xa6e6('0x21'),_0x1aa962);logger['debug'](_0xa6e6('0x21'),_0x1aa962,JSON['stringify'](_0x5d9f82));_0x57193c(_0x5d9f82);})[_0xa6e6('0x14')](function(_0x42d05c){logger[_0xa6e6('0x11')](_0xa6e6('0x21'),_0x42d05c[_0xa6e6('0x12')],_0x1aa962);_0x1b23b7(_0x573b14[_0xa6e6('0x11')](0x1f4,_0x42d05c[_0xa6e6('0x12')]));});});};exports['UpdateCmHopper']=function(_0x51b34b){var _0x475af9=this;return new Promise(function(_0x52d704,_0xc9f3d9){return db[_0xa6e6('0x16')][_0xa6e6('0x25')](_0x51b34b[_0xa6e6('0x23')],{'raw':_0x51b34b['options']?_0x51b34b[_0xa6e6('0x18')][_0xa6e6('0x24')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x51b34b[_0xa6e6('0x18')]?_0x51b34b['options'][_0xa6e6('0x19')]||null:null,'attributes':_0x51b34b[_0xa6e6('0x18')]?_0x51b34b[_0xa6e6('0x18')]['attributes']||null:null,'limit':_0x51b34b[_0xa6e6('0x18')]?_0x51b34b[_0xa6e6('0x18')][_0xa6e6('0x1a')]||null:null})[_0xa6e6('0xa')](function(_0xde8885){logger[_0xa6e6('0xb')]('UpdateCmHopper',_0x51b34b);logger[_0xa6e6('0xe')](_0xa6e6('0x26'),_0x51b34b,JSON[_0xa6e6('0x1f')](_0xde8885));_0x52d704(_0xde8885);})[_0xa6e6('0x14')](function(_0x378b17){logger[_0xa6e6('0x11')](_0xa6e6('0x26'),_0x378b17['message'],_0x51b34b);_0xc9f3d9(_0x475af9[_0xa6e6('0x11')](0x1f4,_0x378b17[_0xa6e6('0x12')]));});});};exports[_0xa6e6('0x27')]=function(_0x39259e){var _0x1a158c=this;return new Promise(function(_0x1f7747,_0x313b90){return db[_0xa6e6('0x16')][_0xa6e6('0x28')]({'where':_0x39259e[_0xa6e6('0x18')]?_0x39259e['options']['where']||null:null})[_0xa6e6('0xa')](function(_0x5ea050){logger[_0xa6e6('0xb')](_0xa6e6('0x27'),_0x39259e);logger[_0xa6e6('0xe')](_0xa6e6('0x27'),_0x39259e,JSON[_0xa6e6('0x1f')](_0x5ea050));_0x1f7747(_0x5ea050);})[_0xa6e6('0x14')](function(_0x3421db){logger[_0xa6e6('0x11')](_0xa6e6('0x27'),_0x3421db[_0xa6e6('0x12')],_0x39259e);_0x313b90(_0x1a158c[_0xa6e6('0x11')](0x1f4,_0x3421db['message']));});});};exports[_0xa6e6('0x29')]=function(_0x30d27c){var _0xc27cfe=this;return new Promise(function(_0x17701b,_0x428411){return db[_0xa6e6('0x2a')]['describe']()[_0xa6e6('0xa')](function(_0x33c683){return db[_0xa6e6('0x2b')][_0xa6e6('0x2c')](function(_0x38369d){return db['CmHopper'][_0xa6e6('0x17')]({'where':_0x30d27c[_0xa6e6('0x18')]?_0x30d27c[_0xa6e6('0x18')]['where']||null:null,'attributes':_0x30d27c[_0xa6e6('0x18')]?_0x30d27c[_0xa6e6('0x18')][_0xa6e6('0x1d')]||null:null,'limit':_0x30d27c['options']?_0x30d27c[_0xa6e6('0x18')]['limit']||null:null,'order':_0x30d27c[_0xa6e6('0x18')]?_0x30d27c[_0xa6e6('0x18')][_0xa6e6('0x2d')]||null:null,'transaction':_0x38369d,'lock':_0x38369d[_0xa6e6('0x2e')][_0xa6e6('0x2f')],'include':[{'model':db[_0xa6e6('0x2a')],'as':'Contact','attributes':_[_0xa6e6('0x30')](_0x33c683)},{'model':db[_0xa6e6('0x31')],'as':'Agent','attributes':['id',_0xa6e6('0x32'),'voicePause']}]})[_0xa6e6('0xa')](function(_0x3b600a){var _0x202c0f=[];var _0x5dbede=[];for(var _0x5ae7d3=0x0;_0x5ae7d3<_0x3b600a[_0xa6e6('0x33')];_0x5ae7d3+=0x1){if(!_0x5dbede[_0xa6e6('0x34')](_0x3b600a[_0x5ae7d3]['UserId'])){_0x5dbede['push'](_0x3b600a[_0x5ae7d3][_0xa6e6('0x35')]);_0x202c0f[_0xa6e6('0x36')](_0x3b600a[_0x5ae7d3][_0xa6e6('0x25')](_0x30d27c['body'],{'transaction':_0x38369d}));}}return BPromise['all'](_0x202c0f);});})[_0xa6e6('0xa')](function(_0x54e511){logger['info']('GetContactDialer',_0x30d27c);logger['debug']('GetContactDialer',_0x30d27c,JSON[_0xa6e6('0x1f')](_0x54e511));_0x17701b(_0x54e511);})['catch'](function(_0x486a04){logger[_0xa6e6('0x11')](_0xa6e6('0x29'),_0x486a04[_0xa6e6('0x12')],_0x30d27c);_0x428411(_0xc27cfe['error'](0x1f4,_0x486a04[_0xa6e6('0x12')]));});});});};exports[_0xa6e6('0x37')]=function(_0x90c7de){var _0x54ac8f=this;return new Promise(function(_0x101a31,_0x16c76a){return db[_0xa6e6('0x2b')][_0xa6e6('0x2c')](function(_0x131cb2){return db[_0xa6e6('0x38')][_0xa6e6('0x22')](_0x90c7de[_0xa6e6('0x23')],{'raw':_0x90c7de[_0xa6e6('0x18')]?_0x90c7de[_0xa6e6('0x18')][_0xa6e6('0x24')]===undefined?!![]:![]:!![],'transaction':_0x131cb2})[_0xa6e6('0xa')](function(){return db['CmHopper'][_0xa6e6('0x28')]({'where':_0x90c7de[_0xa6e6('0x18')]?_0x90c7de[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'transaction':_0x131cb2});});})['then'](function(_0x124759){logger[_0xa6e6('0xb')]('MoveContactManagedDialer',_0x90c7de);logger['debug']('MoveContactManagedDialer',_0x90c7de,JSON[_0xa6e6('0x1f')](_0x124759));_0x101a31(_0x124759);})[_0xa6e6('0x14')](function(_0x4a27a7){logger[_0xa6e6('0x11')](_0xa6e6('0x37'),_0x4a27a7[_0xa6e6('0x12')],_0x90c7de);_0x16c76a(_0x54ac8f[_0xa6e6('0x11')](0x1f4,_0x4a27a7[_0xa6e6('0x12')]));});});};exports[_0xa6e6('0x39')]=function(_0x27decc){var _0x5469e2=this;return new Promise(function(_0x27088f,_0x45366a){return db[_0xa6e6('0x16')][_0xa6e6('0x17')]({'raw':_0x27decc[_0xa6e6('0x18')]?_0x27decc[_0xa6e6('0x18')][_0xa6e6('0x24')]===undefined?!![]:![]:!![],'where':_0x27decc[_0xa6e6('0x18')]?_0x27decc[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'attributes':[[db['sequelize']['fn'](_0xa6e6('0x3a'),db[_0xa6e6('0x2b')]['fn']('IF',db[_0xa6e6('0x2b')][_0xa6e6('0x3b')](_0xa6e6('0x3c')+util[_0xa6e6('0x3d')](_0xa6e6('0x3e'),moment()[_0xa6e6('0x3d')](_0xa6e6('0x3f')))+_0xa6e6('0x40')))),'contactsRescheduled']]})[_0xa6e6('0xa')](function(_0x489996){logger[_0xa6e6('0xb')](_0xa6e6('0x39'),_0x27decc);logger[_0xa6e6('0xe')](_0xa6e6('0x39'),_0x27decc,JSON['stringify'](_0x489996));_0x27088f(_0x489996);})['catch'](function(_0x26caab){logger[_0xa6e6('0x11')]('CountReScheduled',_0x26caab[_0xa6e6('0x12')],_0x27decc);_0x45366a(_0x5469e2[_0xa6e6('0x11')](0x1f4,_0x26caab[_0xa6e6('0x12')]));});});};exports['GetContactRecallMe']=function(_0x3f4bb1){var _0x2d5d11=this;return new Promise(function(_0x347700,_0x2a05b9){return db['CmContact'][_0xa6e6('0x41')]()[_0xa6e6('0xa')](function(_0x5f4d78){return db['sequelize'][_0xa6e6('0x2c')](function(_0x3f562b){return db[_0xa6e6('0x16')][_0xa6e6('0x17')]({'where':_0x3f4bb1[_0xa6e6('0x18')]?_0x3f4bb1[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'attributes':_0x3f4bb1['options']?_0x3f4bb1['options'][_0xa6e6('0x1d')]||null:null,'limit':0x1,'order':_0x3f4bb1['options']?_0x3f4bb1['options'][_0xa6e6('0x2d')]||null:null,'group':db[_0xa6e6('0x16')][_0xa6e6('0x35')],'transaction':_0x3f562b,'lock':_0x3f562b[_0xa6e6('0x2e')][_0xa6e6('0x2f')],'include':_0x3f4bb1['options']?_0x3f4bb1['options'][_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x3f4bb1['options'][_0xa6e6('0x1b')],function(_0x9b4f45){return{'model':db[_0x9b4f45[_0xa6e6('0x1c')]],'as':_0x9b4f45['as'],'attributes':_0x9b4f45[_0xa6e6('0x1d')],'include':_0x9b4f45[_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x9b4f45[_0xa6e6('0x1b')],function(_0x340586){return{'model':db[_0x340586[_0xa6e6('0x1c')]],'as':_0x340586['as'],'attributes':_0x340586[_0xa6e6('0x1d')],'include':_0x340586[_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x340586[_0xa6e6('0x1b')],function(_0x228675){return{'model':db[_0x228675[_0xa6e6('0x1c')]],'as':_0x228675['as'],'attributes':_0x228675[_0xa6e6('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa6e6('0xa')](function(_0x17b4da){var _0x589927=[];for(var _0x1a9701=0x0;_0x1a9701<_0x17b4da[_0xa6e6('0x33')];_0x1a9701+=0x1){_0x589927[_0xa6e6('0x36')](_0x17b4da[_0x1a9701][_0xa6e6('0x25')](_0x3f4bb1[_0xa6e6('0x23')],{'transaction':_0x3f562b}));}return BPromise[_0xa6e6('0x42')](_0x589927);});})[_0xa6e6('0xa')](function(_0xfb2b42){logger['info']('GetContactRecallMe',_0x3f4bb1);logger[_0xa6e6('0xe')]('GetContactRecallMe',_0x3f4bb1,JSON[_0xa6e6('0x1f')](_0xfb2b42));_0x347700(_0xfb2b42);})[_0xa6e6('0x14')](function(_0x336fd2){logger[_0xa6e6('0x11')](_0xa6e6('0x43'),_0x336fd2[_0xa6e6('0x12')],_0x3f4bb1);_0x2a05b9(_0x2d5d11[_0xa6e6('0x11')](0x1f4,_0x336fd2[_0xa6e6('0x12')]));});});});};exports[_0xa6e6('0x44')]=function(_0x3e05cd){var _0x5d390f=this;return new Promise(function(_0x2f7603,_0x52506b){db[_0xa6e6('0x2a')][_0xa6e6('0x41')]()[_0xa6e6('0xa')](function(_0x4ed62f){return db['CmHopper'][_0xa6e6('0x17')]({'raw':_0x3e05cd[_0xa6e6('0x18')]?_0x3e05cd[_0xa6e6('0x18')][_0xa6e6('0x24')]===undefined?!![]:![]:!![],'where':_0x3e05cd[_0xa6e6('0x18')]?_0x3e05cd[_0xa6e6('0x18')][_0xa6e6('0x19')]||null:null,'attributes':_0x3e05cd[_0xa6e6('0x18')]?_0x3e05cd[_0xa6e6('0x18')][_0xa6e6('0x1d')]||null:null,'limit':_0x3e05cd[_0xa6e6('0x18')]?_0x3e05cd[_0xa6e6('0x18')][_0xa6e6('0x1a')]||null:null,'include':_0x3e05cd['options']?_0x3e05cd['options']['include']?_[_0xa6e6('0x1e')](_0x3e05cd['options'][_0xa6e6('0x1b')],function(_0x497c98){return{'model':db[_0x497c98[_0xa6e6('0x1c')]],'as':_0x497c98['as'],'attributes':_0x497c98['as']===_0xa6e6('0x45')?_['keys'](_0x4ed62f):_0x497c98[_0xa6e6('0x1d')],'include':_0x497c98[_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x497c98[_0xa6e6('0x1b')],function(_0x2ff4aa){return{'model':db[_0x2ff4aa[_0xa6e6('0x1c')]],'as':_0x2ff4aa['as'],'attributes':_0x2ff4aa['attributes'],'include':_0x2ff4aa[_0xa6e6('0x1b')]?_[_0xa6e6('0x1e')](_0x2ff4aa[_0xa6e6('0x1b')],function(_0x44ef4e){return{'model':db[_0x44ef4e[_0xa6e6('0x1c')]],'as':_0x44ef4e['as'],'attributes':_0x44ef4e[_0xa6e6('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2ac59f){logger['info'](_0xa6e6('0x15'),_0x3e05cd);logger['debug'](_0xa6e6('0x15'),_0x3e05cd,JSON[_0xa6e6('0x1f')](_0x2ac59f));_0x2f7603(_0x2ac59f);})[_0xa6e6('0x14')](function(_0x5b1982){logger['error'](_0xa6e6('0x15'),_0x5b1982[_0xa6e6('0x12')],_0x3e05cd);_0x52506b(_0x5d390f[_0xa6e6('0x11')](0x1f4,_0x5b1982[_0xa6e6('0x12')]));});});});};