24dd607998e7ab69ef3cc9fc7bf8a043517cca86
[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 _0x0ea2=['contactsRescheduled','CountReScheduled','GetContactRecallMe','LOCK','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetCmHopper','CmHopper','findAll','options','limit','include','model','attributes','map','then','ShowCmHopper','find','raw','where','body','CreateCmHopper','UpdateCmHopper','update','DestroyCmHopper','destroy','GetContactDialer','describe','UPDATE','CmContact','Contact','keys','Agent','name','length','UserId','includes','push','all','transaction','MoveContactManagedDialer','sequelize','literal','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null'];(function(_0x318840,_0x561b1e){var _0x223da4=function(_0x510071){while(--_0x510071){_0x318840['push'](_0x318840['shift']());}};_0x223da4(++_0x561b1e);}(_0x0ea2,0xd3));var _0x20ea=function(_0x4511e6,_0x2c3afe){_0x4511e6=_0x4511e6-0x0;var _0x573951=_0x0ea2[_0x4511e6];return _0x573951;};'use strict';var _=require(_0x20ea('0x0'));var util=require(_0x20ea('0x1'));var moment=require(_0x20ea('0x2'));var BPromise=require(_0x20ea('0x3'));var rs=require(_0x20ea('0x4'));var fs=require('fs');var Redis=require(_0x20ea('0x5'));var db=require(_0x20ea('0x6'))['db'];var utils=require(_0x20ea('0x7'));var logger=require(_0x20ea('0x8'))('rpc');var config=require(_0x20ea('0x9'));var jayson=require(_0x20ea('0xa'));var client=jayson[_0x20ea('0xb')][_0x20ea('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x61c106,_0x16ec1d,_0x2f0504){return new BPromise(function(_0x23d05a,_0x462f14){return client['request'](_0x61c106,_0x2f0504)['then'](function(_0x4aa404){logger[_0x20ea('0xd')](_0x20ea('0xe'),_0x16ec1d,_0x20ea('0xf'));logger[_0x20ea('0x10')](_0x20ea('0x11'),_0x16ec1d,_0x20ea('0xf'),JSON[_0x20ea('0x12')](_0x4aa404));if(_0x4aa404[_0x20ea('0x13')]){if(_0x4aa404[_0x20ea('0x13')][_0x20ea('0x14')]===0x1f4){logger['error'](_0x20ea('0xe'),_0x16ec1d,_0x4aa404[_0x20ea('0x13')][_0x20ea('0x15')]);return _0x462f14(_0x4aa404[_0x20ea('0x13')]['message']);}logger[_0x20ea('0x13')](_0x20ea('0xe'),_0x16ec1d,_0x4aa404['error'][_0x20ea('0x15')]);return _0x23d05a(_0x4aa404[_0x20ea('0x13')][_0x20ea('0x15')]);}else{logger['info'](_0x20ea('0xe'),_0x16ec1d,'request\x20sent');_0x23d05a(_0x4aa404[_0x20ea('0x16')][_0x20ea('0x15')]);}})[_0x20ea('0x17')](function(_0xa371c){logger[_0x20ea('0x13')]('CmHopper,\x20%s,\x20%s',_0x16ec1d,_0xa371c);_0x462f14(_0xa371c);});});}exports[_0x20ea('0x18')]=function(_0x35c784){var _0x3e1863=this;return new Promise(function(_0x142211,_0x212c83){return db[_0x20ea('0x19')][_0x20ea('0x1a')]({'raw':_0x35c784[_0x20ea('0x1b')]?_0x35c784[_0x20ea('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x35c784[_0x20ea('0x1b')]?_0x35c784['options']['where']||null:null,'attributes':_0x35c784[_0x20ea('0x1b')]?_0x35c784['options']['attributes']||null:null,'limit':_0x35c784['options']?_0x35c784['options'][_0x20ea('0x1c')]||null:null,'include':_0x35c784[_0x20ea('0x1b')]?_0x35c784[_0x20ea('0x1b')]['include']?_['map'](_0x35c784[_0x20ea('0x1b')][_0x20ea('0x1d')],function(_0x28c2ed){return{'model':db[_0x28c2ed[_0x20ea('0x1e')]],'as':_0x28c2ed['as'],'attributes':_0x28c2ed[_0x20ea('0x1f')],'include':_0x28c2ed[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0x28c2ed[_0x20ea('0x1d')],function(_0x38f24b){return{'model':db[_0x38f24b['model']],'as':_0x38f24b['as'],'attributes':_0x38f24b[_0x20ea('0x1f')],'include':_0x38f24b[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0x38f24b[_0x20ea('0x1d')],function(_0x6ad922){return{'model':db[_0x6ad922[_0x20ea('0x1e')]],'as':_0x6ad922['as'],'attributes':_0x6ad922[_0x20ea('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x20ea('0x21')](function(_0x30d1f3){logger[_0x20ea('0xd')](_0x20ea('0x18'),_0x35c784);logger[_0x20ea('0x10')](_0x20ea('0x18'),_0x35c784,JSON[_0x20ea('0x12')](_0x30d1f3));_0x142211(_0x30d1f3);})['catch'](function(_0x5d0543){logger['error'](_0x20ea('0x18'),_0x5d0543[_0x20ea('0x15')],_0x35c784);_0x212c83(_0x3e1863[_0x20ea('0x13')](0x1f4,_0x5d0543[_0x20ea('0x15')]));});});};exports[_0x20ea('0x22')]=function(_0x44a82e){var _0xfd0ef1=this;return new Promise(function(_0x3fa07d,_0x2188dc){return db[_0x20ea('0x19')][_0x20ea('0x23')]({'raw':_0x44a82e[_0x20ea('0x1b')]?_0x44a82e[_0x20ea('0x1b')][_0x20ea('0x24')]===undefined?!![]:![]:!![],'where':_0x44a82e['options']?_0x44a82e[_0x20ea('0x1b')][_0x20ea('0x25')]||null:null,'attributes':_0x44a82e[_0x20ea('0x1b')]?_0x44a82e['options'][_0x20ea('0x1f')]||null:null,'include':_0x44a82e[_0x20ea('0x1b')]?_0x44a82e['options']['include']?_[_0x20ea('0x20')](_0x44a82e['options'][_0x20ea('0x1d')],function(_0xaf143a){return{'model':db[_0xaf143a[_0x20ea('0x1e')]],'as':_0xaf143a['as'],'attributes':_0xaf143a[_0x20ea('0x1f')],'include':_0xaf143a[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0xaf143a[_0x20ea('0x1d')],function(_0x14b9cd){return{'model':db[_0x14b9cd['model']],'as':_0x14b9cd['as'],'attributes':_0x14b9cd[_0x20ea('0x1f')],'include':_0x14b9cd[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0x14b9cd[_0x20ea('0x1d')],function(_0x4bf540){return{'model':db[_0x4bf540[_0x20ea('0x1e')]],'as':_0x4bf540['as'],'attributes':_0x4bf540[_0x20ea('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x208976){logger['info']('ShowCmHopper',_0x44a82e);logger[_0x20ea('0x10')](_0x20ea('0x22'),_0x44a82e,JSON[_0x20ea('0x12')](_0x208976));_0x3fa07d(_0x208976);})[_0x20ea('0x17')](function(_0x4ab59a){logger[_0x20ea('0x13')](_0x20ea('0x22'),_0x4ab59a[_0x20ea('0x15')],_0x44a82e);_0x2188dc(_0xfd0ef1[_0x20ea('0x13')](0x1f4,_0x4ab59a[_0x20ea('0x15')]));});});};exports['CreateCmHopper']=function(_0x34b203){var _0x3cc3a3=this;return new Promise(function(_0x541484,_0x29d798){return db[_0x20ea('0x19')]['create'](_0x34b203[_0x20ea('0x26')],{'raw':_0x34b203['options']?_0x34b203[_0x20ea('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x20ea('0x21')](function(_0x3b9725){logger[_0x20ea('0xd')]('CreateCmHopper',_0x34b203);logger['debug'](_0x20ea('0x27'),_0x34b203,JSON[_0x20ea('0x12')](_0x3b9725));_0x541484(_0x3b9725);})[_0x20ea('0x17')](function(_0x5a3ff8){logger['error'](_0x20ea('0x27'),_0x5a3ff8[_0x20ea('0x15')],_0x34b203);_0x29d798(_0x3cc3a3[_0x20ea('0x13')](0x1f4,_0x5a3ff8[_0x20ea('0x15')]));});});};exports[_0x20ea('0x28')]=function(_0x59cd33){var _0x5ea258=this;return new Promise(function(_0x5968f7,_0x324ba5){return db[_0x20ea('0x19')][_0x20ea('0x29')](_0x59cd33['body'],{'raw':_0x59cd33[_0x20ea('0x1b')]?_0x59cd33[_0x20ea('0x1b')][_0x20ea('0x24')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x59cd33['options']?_0x59cd33[_0x20ea('0x1b')]['where']||null:null,'attributes':_0x59cd33[_0x20ea('0x1b')]?_0x59cd33[_0x20ea('0x1b')][_0x20ea('0x1f')]||null:null,'limit':_0x59cd33['options']?_0x59cd33[_0x20ea('0x1b')][_0x20ea('0x1c')]||null:null})[_0x20ea('0x21')](function(_0xdb61f7){logger['info'](_0x20ea('0x28'),_0x59cd33);logger[_0x20ea('0x10')](_0x20ea('0x28'),_0x59cd33,JSON[_0x20ea('0x12')](_0xdb61f7));_0x5968f7(_0xdb61f7);})[_0x20ea('0x17')](function(_0x3f3e0c){logger[_0x20ea('0x13')]('UpdateCmHopper',_0x3f3e0c[_0x20ea('0x15')],_0x59cd33);_0x324ba5(_0x5ea258['error'](0x1f4,_0x3f3e0c[_0x20ea('0x15')]));});});};exports[_0x20ea('0x2a')]=function(_0x570993){var _0x1f81f3=this;return new Promise(function(_0x64d906,_0x51253d){return db[_0x20ea('0x19')][_0x20ea('0x2b')]({'where':_0x570993[_0x20ea('0x1b')]?_0x570993['options'][_0x20ea('0x25')]||null:null})[_0x20ea('0x21')](function(_0x4feaaf){logger[_0x20ea('0xd')](_0x20ea('0x2a'),_0x570993);logger[_0x20ea('0x10')](_0x20ea('0x2a'),_0x570993,JSON[_0x20ea('0x12')](_0x4feaaf));_0x64d906(_0x4feaaf);})['catch'](function(_0x59bbe1){logger[_0x20ea('0x13')]('DestroyCmHopper',_0x59bbe1[_0x20ea('0x15')],_0x570993);_0x51253d(_0x1f81f3[_0x20ea('0x13')](0x1f4,_0x59bbe1[_0x20ea('0x15')]));});});};exports[_0x20ea('0x2c')]=function(_0x1d1c02){var _0x405e63=this;return new Promise(function(_0x10e26c,_0x427fa3){return db['CmContact'][_0x20ea('0x2d')]()[_0x20ea('0x21')](function(_0x5d1953){return db['sequelize']['transaction'](function(_0x32ac05){return db[_0x20ea('0x19')]['findAll']({'where':_0x1d1c02[_0x20ea('0x1b')]?_0x1d1c02[_0x20ea('0x1b')][_0x20ea('0x25')]||null:null,'attributes':_0x1d1c02[_0x20ea('0x1b')]?_0x1d1c02[_0x20ea('0x1b')]['attributes']||null:null,'limit':_0x1d1c02[_0x20ea('0x1b')]?_0x1d1c02[_0x20ea('0x1b')][_0x20ea('0x1c')]||null:null,'order':_0x1d1c02[_0x20ea('0x1b')]?_0x1d1c02[_0x20ea('0x1b')]['order']||null:null,'transaction':_0x32ac05,'lock':_0x32ac05['LOCK'][_0x20ea('0x2e')],'include':[{'model':db[_0x20ea('0x2f')],'as':_0x20ea('0x30'),'attributes':_[_0x20ea('0x31')](_0x5d1953)},{'model':db['User'],'as':_0x20ea('0x32'),'attributes':['id',_0x20ea('0x33'),'voicePause']}]})[_0x20ea('0x21')](function(_0x54129b){var _0x4cbb3c=[];var _0x1b9373=[];for(var _0x2ec7b6=0x0;_0x2ec7b6<_0x54129b[_0x20ea('0x34')];_0x2ec7b6+=0x1){var _0x9f0b47=_0x54129b[_0x2ec7b6][_0x20ea('0x35')];if(_0x9f0b47===null){_0x4cbb3c['push'](_0x54129b[_0x2ec7b6]['update'](_0x1d1c02[_0x20ea('0x26')],{'transaction':_0x32ac05}));}else if(!_0x1b9373[_0x20ea('0x36')](_0x9f0b47)){_0x1b9373[_0x20ea('0x37')](_0x9f0b47);_0x4cbb3c[_0x20ea('0x37')](_0x54129b[_0x2ec7b6][_0x20ea('0x29')](_0x1d1c02[_0x20ea('0x26')],{'transaction':_0x32ac05}));}}return BPromise[_0x20ea('0x38')](_0x4cbb3c);});})[_0x20ea('0x21')](function(_0x2ec0d7){logger[_0x20ea('0xd')]('GetContactDialer',_0x1d1c02);logger[_0x20ea('0x10')]('GetContactDialer',_0x1d1c02,JSON[_0x20ea('0x12')](_0x2ec0d7));_0x10e26c(_0x2ec0d7);})['catch'](function(_0x34271a){logger['error'](_0x20ea('0x2c'),_0x34271a[_0x20ea('0x15')],_0x1d1c02);_0x427fa3(_0x405e63[_0x20ea('0x13')](0x1f4,_0x34271a[_0x20ea('0x15')]));});});});};exports['MoveContactManagedDialer']=function(_0x248f0e){var _0x56d24b=this;return new Promise(function(_0x594c98,_0x160697){return db['sequelize'][_0x20ea('0x39')](function(_0x51472a){return db['CmHopperFinal']['create'](_0x248f0e['body'],{'raw':_0x248f0e[_0x20ea('0x1b')]?_0x248f0e[_0x20ea('0x1b')]['raw']===undefined?!![]:![]:!![],'transaction':_0x51472a})[_0x20ea('0x21')](function(){return db['CmHopper']['destroy']({'where':_0x248f0e[_0x20ea('0x1b')]?_0x248f0e[_0x20ea('0x1b')][_0x20ea('0x25')]||null:null,'transaction':_0x51472a});});})['then'](function(_0x359d2b){logger['info'](_0x20ea('0x3a'),_0x248f0e);logger['debug'](_0x20ea('0x3a'),_0x248f0e,JSON[_0x20ea('0x12')](_0x359d2b));_0x594c98(_0x359d2b);})['catch'](function(_0x2b84b6){logger['error'](_0x20ea('0x3a'),_0x2b84b6[_0x20ea('0x15')],_0x248f0e);_0x160697(_0x56d24b['error'](0x1f4,_0x2b84b6[_0x20ea('0x15')]));});});};exports['CountReScheduled']=function(_0x43746c){var _0x32811b=this;return new Promise(function(_0x217c16,_0x2f5e52){return db[_0x20ea('0x19')]['findAll']({'raw':_0x43746c[_0x20ea('0x1b')]?_0x43746c[_0x20ea('0x1b')][_0x20ea('0x24')]===undefined?!![]:![]:!![],'where':_0x43746c['options']?_0x43746c[_0x20ea('0x1b')]['where']||null:null,'attributes':[[db[_0x20ea('0x3b')]['fn']('COUNT',db[_0x20ea('0x3b')]['fn']('IF',db[_0x20ea('0x3b')][_0x20ea('0x3c')]('`scheduledat`\x20>=\x20'+util[_0x20ea('0x3d')](_0x20ea('0x3e'),moment()['format'](_0x20ea('0x3f')))+_0x20ea('0x40')))),_0x20ea('0x41')]]})['then'](function(_0x136bb8){logger['info'](_0x20ea('0x42'),_0x43746c);logger[_0x20ea('0x10')]('CountReScheduled',_0x43746c,JSON[_0x20ea('0x12')](_0x136bb8));_0x217c16(_0x136bb8);})[_0x20ea('0x17')](function(_0x2f218d){logger['error'](_0x20ea('0x42'),_0x2f218d[_0x20ea('0x15')],_0x43746c);_0x2f5e52(_0x32811b['error'](0x1f4,_0x2f218d['message']));});});};exports[_0x20ea('0x43')]=function(_0x2a5621){var _0x3fa3db=this;return new Promise(function(_0x48f524,_0x20958f){return db['CmContact'][_0x20ea('0x2d')]()['then'](function(_0x17a5f6){return db[_0x20ea('0x3b')]['transaction'](function(_0xf27e51){return db[_0x20ea('0x19')][_0x20ea('0x1a')]({'where':_0x2a5621['options']?_0x2a5621[_0x20ea('0x1b')]['where']||null:null,'attributes':_0x2a5621[_0x20ea('0x1b')]?_0x2a5621[_0x20ea('0x1b')][_0x20ea('0x1f')]||null:null,'limit':0x1,'order':_0x2a5621[_0x20ea('0x1b')]?_0x2a5621[_0x20ea('0x1b')]['order']||null:null,'group':db[_0x20ea('0x19')]['UserId'],'transaction':_0xf27e51,'lock':_0xf27e51[_0x20ea('0x44')]['UPDATE'],'include':_0x2a5621[_0x20ea('0x1b')]?_0x2a5621[_0x20ea('0x1b')][_0x20ea('0x1d')]?_['map'](_0x2a5621[_0x20ea('0x1b')][_0x20ea('0x1d')],function(_0x3c67f4){return{'model':db[_0x3c67f4['model']],'as':_0x3c67f4['as'],'attributes':_0x3c67f4[_0x20ea('0x1f')],'include':_0x3c67f4[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0x3c67f4[_0x20ea('0x1d')],function(_0x165dcb){return{'model':db[_0x165dcb[_0x20ea('0x1e')]],'as':_0x165dcb['as'],'attributes':_0x165dcb[_0x20ea('0x1f')],'include':_0x165dcb[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0x165dcb[_0x20ea('0x1d')],function(_0x2afe51){return{'model':db[_0x2afe51[_0x20ea('0x1e')]],'as':_0x2afe51['as'],'attributes':_0x2afe51[_0x20ea('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x20ea('0x21')](function(_0x33e403){var _0x1b8b7b=[];for(var _0x54d3b1=0x0;_0x54d3b1<_0x33e403['length'];_0x54d3b1+=0x1){_0x1b8b7b[_0x20ea('0x37')](_0x33e403[_0x54d3b1][_0x20ea('0x29')](_0x2a5621[_0x20ea('0x26')],{'transaction':_0xf27e51}));}return BPromise[_0x20ea('0x38')](_0x1b8b7b);});})[_0x20ea('0x21')](function(_0x52aa50){logger[_0x20ea('0xd')](_0x20ea('0x43'),_0x2a5621);logger[_0x20ea('0x10')](_0x20ea('0x43'),_0x2a5621,JSON[_0x20ea('0x12')](_0x52aa50));_0x48f524(_0x52aa50);})['catch'](function(_0x57617f){logger[_0x20ea('0x13')](_0x20ea('0x43'),_0x57617f[_0x20ea('0x15')],_0x2a5621);_0x20958f(_0x3fa3db[_0x20ea('0x13')](0x1f4,_0x57617f[_0x20ea('0x15')]));});});});};exports['GetCmHopperPreview']=function(_0x4a65ab){var _0x28661b=this;return new Promise(function(_0x4531a7,_0x2cb6eb){db[_0x20ea('0x2f')]['describe']()[_0x20ea('0x21')](function(_0x30d182){return db[_0x20ea('0x19')][_0x20ea('0x1a')]({'raw':_0x4a65ab['options']?_0x4a65ab[_0x20ea('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x4a65ab[_0x20ea('0x1b')]?_0x4a65ab['options']['where']||null:null,'attributes':_0x4a65ab[_0x20ea('0x1b')]?_0x4a65ab[_0x20ea('0x1b')][_0x20ea('0x1f')]||null:null,'limit':_0x4a65ab[_0x20ea('0x1b')]?_0x4a65ab[_0x20ea('0x1b')][_0x20ea('0x1c')]||null:null,'include':_0x4a65ab[_0x20ea('0x1b')]?_0x4a65ab[_0x20ea('0x1b')][_0x20ea('0x1d')]?_['map'](_0x4a65ab[_0x20ea('0x1b')][_0x20ea('0x1d')],function(_0xda3f9e){return{'model':db[_0xda3f9e['model']],'as':_0xda3f9e['as'],'attributes':_0xda3f9e['as']===_0x20ea('0x30')?_[_0x20ea('0x31')](_0x30d182):_0xda3f9e['attributes'],'include':_0xda3f9e[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0xda3f9e[_0x20ea('0x1d')],function(_0xec0deb){return{'model':db[_0xec0deb[_0x20ea('0x1e')]],'as':_0xec0deb['as'],'attributes':_0xec0deb[_0x20ea('0x1f')],'include':_0xec0deb[_0x20ea('0x1d')]?_[_0x20ea('0x20')](_0xec0deb[_0x20ea('0x1d')],function(_0xb2f865){return{'model':db[_0xb2f865[_0x20ea('0x1e')]],'as':_0xb2f865['as'],'attributes':_0xb2f865[_0x20ea('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x20ea('0x21')](function(_0x323e2e){logger['info'](_0x20ea('0x18'),_0x4a65ab);logger[_0x20ea('0x10')](_0x20ea('0x18'),_0x4a65ab,JSON['stringify'](_0x323e2e));_0x4531a7(_0x323e2e);})['catch'](function(_0x242599){logger[_0x20ea('0x13')](_0x20ea('0x18'),_0x242599['message'],_0x4a65ab);_0x2cb6eb(_0x28661b[_0x20ea('0x13')](0x1f4,_0x242599[_0x20ea('0x15')]));});});});};