2e8b05159b75b5e5c03d64e74a6ed958932d0d52
[motion2.git] / server / api / dashboardItem / dashboardItem.controller.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 _0x31af=['attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','attrSerie2','attrSerie3','attrChannel','web-report','reportType','attrReport','attrRefresh','stringify','create','body','update','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','apply','reject','save','then','error','stack','send','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','options','find','destroy','catch','type','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss'];(function(_0x111347,_0x4c88a4){var _0x4f8902=function(_0x5bd3f5){while(--_0x5bd3f5){_0x111347['push'](_0x111347['shift']());}};_0x4f8902(++_0x4c88a4);}(_0x31af,0xde));var _0xf31a=function(_0x2f713b,_0x4d1316){_0x2f713b=_0x2f713b-0x0;var _0x8428f8=_0x31af[_0x2f713b];return _0x8428f8;};'use strict';var emlformat=require(_0xf31a('0x0'));var rimraf=require(_0xf31a('0x1'));var zipdir=require(_0xf31a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xf31a('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf31a('0x4'));var util=require(_0xf31a('0x5'));var path=require(_0xf31a('0x6'));var sox=require(_0xf31a('0x7'));var csv=require('to-csv');var ejs=require(_0xf31a('0x8'));var fs=require('fs');var fs_extra=require(_0xf31a('0x9'));var _=require(_0xf31a('0xa'));var squel=require(_0xf31a('0xb'));var crypto=require('crypto');var jsforce=require(_0xf31a('0xc'));var deskjs=require(_0xf31a('0xd'));var toCsv=require(_0xf31a('0xe'));var querystring=require(_0xf31a('0xf'));var Papa=require('papaparse');var Redis=require(_0xf31a('0x10'));var authService=require(_0xf31a('0x11'));var qs=require(_0xf31a('0x12'));var as=require(_0xf31a('0x13'));var hardwareService=require(_0xf31a('0x14'));var logger=require('../../config/logger')(_0xf31a('0x15'));var utils=require(_0xf31a('0x16'));var config=require(_0xf31a('0x17'));var licenseUtil=require(_0xf31a('0x18'));var db=require('../../mysqldb')['db'];config[_0xf31a('0x19')]=_[_0xf31a('0x1a')](config['redis'],{'host':_0xf31a('0x1b'),'port':0x18eb});var socket=require(_0xf31a('0x1c'))(new Redis(config[_0xf31a('0x19')]));require(_0xf31a('0x1d'))[_0xf31a('0x1e')](socket);function respondWithStatusCode(_0x203031,_0x1d2d07){_0x1d2d07=_0x1d2d07||0xcc;return function(_0x4681e3){if(_0x4681e3){return _0x203031[_0xf31a('0x1f')](_0x1d2d07);}return _0x203031[_0xf31a('0x20')](_0x1d2d07)[_0xf31a('0x21')]();};}function respondWithResult(_0x1da226,_0x3439ba){_0x3439ba=_0x3439ba||0xc8;return function(_0xccfd8b){if(_0xccfd8b){return _0x1da226[_0xf31a('0x20')](_0x3439ba)['json'](_0xccfd8b);}};}function respondWithFilteredResult(_0x454836,_0x27e161){return function(_0x251ca7){if(_0x251ca7){var _0x3bff26=typeof _0x27e161['offset']===_0xf31a('0x22')&&typeof _0x27e161[_0xf31a('0x23')]===_0xf31a('0x22');var _0x208da3=_0x251ca7[_0xf31a('0x24')];var _0x516672=_0x3bff26?0x0:_0x27e161[_0xf31a('0x25')];var _0xd3ac94=_0x3bff26?_0x251ca7['count']:_0x27e161[_0xf31a('0x25')]+_0x27e161[_0xf31a('0x23')];var _0x55da11;if(_0xd3ac94>=_0x208da3){_0xd3ac94=_0x208da3;_0x55da11=0xc8;}else{_0x55da11=0xce;}_0x454836[_0xf31a('0x20')](_0x55da11);return _0x454836[_0xf31a('0x26')]('Content-Range',_0x516672+'-'+_0xd3ac94+'/'+_0x208da3)['json'](_0x251ca7);}return null;};}function patchUpdates(_0x534317){return function(_0x15db83){try{jsonpatch[_0xf31a('0x27')](_0x15db83,_0x534317,!![]);}catch(_0x5c23db){return BPromise[_0xf31a('0x28')](_0x5c23db);}return _0x15db83[_0xf31a('0x29')]();};}function saveUpdates(_0x5d08ee,_0x177fb6){return function(_0x4c46d9){if(_0x4c46d9){return _0x4c46d9['update'](_0x5d08ee)[_0xf31a('0x2a')](function(_0x714292){return _0x714292;});}return null;};}function removeEntity(_0x54ad77,_0x4e115c){return function(_0x59114a){if(_0x59114a){return _0x59114a['destroy']()[_0xf31a('0x2a')](function(){_0x54ad77[_0xf31a('0x20')](0xcc)[_0xf31a('0x21')]();});}};}function handleEntityNotFound(_0x595db6,_0x2281c5){return function(_0x2ace06){if(!_0x2ace06){_0x595db6[_0xf31a('0x1f')](0x194);}return _0x2ace06;};}function handleError(_0x2aa749,_0x347a20){_0x347a20=_0x347a20||0x1f4;return function(_0x5a55c6){logger[_0xf31a('0x2b')](_0x5a55c6[_0xf31a('0x2c')]);if(_0x5a55c6['name']){delete _0x5a55c6['name'];}_0x2aa749[_0xf31a('0x20')](_0x347a20)[_0xf31a('0x2d')](_0x5a55c6);};}exports['show']=function(_0x1bcfe6,_0x221048){var _0x2f739c={'raw':![],'where':{'id':_0x1bcfe6[_0xf31a('0x2e')]['id']}},_0x5385ba={};_0x5385ba[_0xf31a('0x2f')]=_[_0xf31a('0x30')](db[_0xf31a('0x31')][_0xf31a('0x32')]);_0x5385ba[_0xf31a('0x33')]=_['keys'](_0x1bcfe6[_0xf31a('0x33')]);_0x5385ba[_0xf31a('0x34')]=_[_0xf31a('0x35')](_0x5385ba[_0xf31a('0x2f')],_0x5385ba[_0xf31a('0x33')]);_0x2f739c[_0xf31a('0x36')]=_[_0xf31a('0x35')](_0x5385ba[_0xf31a('0x2f')],qs[_0xf31a('0x37')](_0x1bcfe6[_0xf31a('0x33')][_0xf31a('0x37')]));_0x2f739c[_0xf31a('0x36')]=_0x2f739c[_0xf31a('0x36')][_0xf31a('0x38')]?_0x2f739c[_0xf31a('0x36')]:_0x5385ba[_0xf31a('0x2f')];if(_0x1bcfe6[_0xf31a('0x33')][_0xf31a('0x39')]){_0x2f739c[_0xf31a('0x3a')]=[{'all':!![]}];}_0x2f739c=_['merge']({},_0x2f739c,_0x1bcfe6[_0xf31a('0x3b')]);return db[_0xf31a('0x31')][_0xf31a('0x3c')](_0x2f739c)[_0xf31a('0x2a')](handleEntityNotFound(_0x221048,null))[_0xf31a('0x2a')](respondWithResult(_0x221048,null))['catch'](handleError(_0x221048,null));};exports[_0xf31a('0x3d')]=function(_0x619352,_0xe8e0e0){return db['DashboardItem'][_0xf31a('0x3c')]({'where':{'id':_0x619352[_0xf31a('0x2e')]['id']}})[_0xf31a('0x2a')](handleEntityNotFound(_0xe8e0e0,null))[_0xf31a('0x2a')](removeEntity(_0xe8e0e0,null))[_0xf31a('0x3e')](handleError(_0xe8e0e0,null));};function widgetAttributes(_0x59ef5b){try{switch(_0x59ef5b[_0xf31a('0x3f')]){case'iframe':return[{'name':_0xf31a('0x40'),'value':_0x59ef5b[_0xf31a('0x40')]||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0][_0xf31a('0x42')]:undefined)||'https://'}];case _0xf31a('0x43'):return[{'name':_0xf31a('0x44'),'value':_0x59ef5b[_0xf31a('0x44')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0][_0xf31a('0x42')]:undefined)||''}];case _0xf31a('0x45'):return[{'name':_0xf31a('0x46'),'value':_0x59ef5b['attrHourFormat']||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b['attrs'][0x0][_0xf31a('0x42')]:undefined)||_0xf31a('0x47')},{'name':_0xf31a('0x48'),'value':_0x59ef5b[_0xf31a('0x48')]||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x1]?_0x59ef5b[_0xf31a('0x41')][0x1][_0xf31a('0x42')]:undefined)||_0xf31a('0x49')},{'name':'attrFontSize','value':_0x59ef5b[_0xf31a('0x4a')]||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x2]?_0x59ef5b[_0xf31a('0x41')][0x2][_0xf31a('0x42')]:undefined)||0xc}];case'counter':return[{'name':_0xf31a('0x4b'),'value':_0x59ef5b['attrMetric']||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0][_0xf31a('0x42')]:undefined)||_0xf31a('0x4c')},{'name':_0xf31a('0x4d'),'value':_0x59ef5b[_0xf31a('0x4d')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x1]?_0x59ef5b['attrs'][0x1][_0xf31a('0x42')]:undefined)||[]},{'name':_0xf31a('0x4a'),'value':_0x59ef5b[_0xf31a('0x4a')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x2]?_0x59ef5b[_0xf31a('0x41')][0x2][_0xf31a('0x42')]:undefined)||0x14},{'name':'attrChannel','value':_0x59ef5b['attrChannel']||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x3]?_0x59ef5b[_0xf31a('0x41')][0x3][_0xf31a('0x42')]:undefined)||_0xf31a('0x4e')},{'name':_0xf31a('0x4f'),'value':_0x59ef5b['attrEmailAccounts']||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x4]?_0x59ef5b[_0xf31a('0x41')][0x4][_0xf31a('0x42')]:undefined)||''},{'name':_0xf31a('0x50'),'value':_0x59ef5b[_0xf31a('0x50')]||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x5]?_0x59ef5b[_0xf31a('0x41')][0x5][_0xf31a('0x42')]:undefined)||''},{'name':_0xf31a('0x51'),'value':_0x59ef5b[_0xf31a('0x51')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x6]?_0x59ef5b[_0xf31a('0x41')][0x6][_0xf31a('0x42')]:undefined)||''},{'name':_0xf31a('0x52'),'value':_0x59ef5b['attrOpenchannelAccounts']||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b['attrs'][0x7]?_0x59ef5b[_0xf31a('0x41')][0x7][_0xf31a('0x42')]:undefined)||''},{'name':_0xf31a('0x53'),'value':_0x59ef5b[_0xf31a('0x53')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x8]?_0x59ef5b[_0xf31a('0x41')][0x8][_0xf31a('0x42')]:undefined)||''},{'name':'attrChatWebsites','value':_0x59ef5b[_0xf31a('0x54')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x9]?_0x59ef5b[_0xf31a('0x41')][0x9][_0xf31a('0x42')]:undefined)||''}];case _0xf31a('0x55'):case'pie-chart':return[{'name':_0xf31a('0x56'),'value':_0x59ef5b[_0xf31a('0x56')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0][_0xf31a('0x42')]:undefined)||_0xf31a('0x4c')},{'name':_0xf31a('0x57'),'value':_0x59ef5b[_0xf31a('0x57')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x1]?_0x59ef5b[_0xf31a('0x41')][0x1]['value']:undefined)||null},{'name':_0xf31a('0x58'),'value':_0x59ef5b[_0xf31a('0x58')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b['attrs'][0x2]?_0x59ef5b[_0xf31a('0x41')][0x2]['value']:undefined)||null},{'name':_0xf31a('0x4d'),'value':_0x59ef5b[_0xf31a('0x4d')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x3]?_0x59ef5b['attrs'][0x3][_0xf31a('0x42')]:undefined)||[]},{'name':_0xf31a('0x59'),'value':_0x59ef5b[_0xf31a('0x59')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x4]?_0x59ef5b[_0xf31a('0x41')][0x4]['value']:undefined)||_0xf31a('0x4e')},{'name':'attrEmailAccounts','value':_0x59ef5b['attrEmailAccounts']||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x5]?_0x59ef5b[_0xf31a('0x41')][0x5][_0xf31a('0x42')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x59ef5b[_0xf31a('0x50')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x6]?_0x59ef5b['attrs'][0x6]['value']:undefined)||''},{'name':_0xf31a('0x51'),'value':_0x59ef5b[_0xf31a('0x51')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x7]?_0x59ef5b[_0xf31a('0x41')][0x7][_0xf31a('0x42')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x59ef5b[_0xf31a('0x52')]||(_0x59ef5b['attrs']&&_0x59ef5b[_0xf31a('0x41')][0x8]?_0x59ef5b[_0xf31a('0x41')][0x8][_0xf31a('0x42')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x59ef5b[_0xf31a('0x53')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x9]?_0x59ef5b[_0xf31a('0x41')][0x9][_0xf31a('0x42')]:undefined)||''},{'name':_0xf31a('0x54'),'value':_0x59ef5b[_0xf31a('0x54')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b['attrs'][0xa]?_0x59ef5b[_0xf31a('0x41')][0xa]['value']:undefined)||''}];case _0xf31a('0x5a'):return[{'name':'attrReport','type':_0x59ef5b[_0xf31a('0x5b')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0]['type']:undefined)||null,'value':_0x59ef5b[_0xf31a('0x5c')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x0]?_0x59ef5b[_0xf31a('0x41')][0x0][_0xf31a('0x42')]:undefined)||null},{'name':_0xf31a('0x5d'),'value':_0x59ef5b[_0xf31a('0x5d')]||(_0x59ef5b[_0xf31a('0x41')]&&_0x59ef5b[_0xf31a('0x41')][0x1]?_0x59ef5b[_0xf31a('0x41')][0x1][_0xf31a('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x776ec7){logger[_0xf31a('0x2b')]('widgetAttributes:\x20%s',JSON[_0xf31a('0x5e')](_0x776ec7));return[];}}exports[_0xf31a('0x5f')]=function(_0x55695a,_0x4558d8){if(_0x55695a[_0xf31a('0x60')]){_0x55695a['body'][_0xf31a('0x41')]=widgetAttributes(_0x55695a[_0xf31a('0x60')]);}return db['DashboardItem']['create'](_0x55695a['body'],{})['then'](respondWithResult(_0x4558d8,0xc9))[_0xf31a('0x3e')](handleError(_0x4558d8,null));};exports[_0xf31a('0x61')]=function(_0x19c85e,_0x36ceca){if(_0x19c85e[_0xf31a('0x60')]['id']){delete _0x19c85e[_0xf31a('0x60')]['id'];}_0x19c85e['body'][_0xf31a('0x41')]=widgetAttributes(_0x19c85e[_0xf31a('0x60')]);return db[_0xf31a('0x31')][_0xf31a('0x3c')]({'where':{'id':_0x19c85e[_0xf31a('0x2e')]['id']}})[_0xf31a('0x2a')](handleEntityNotFound(_0x36ceca,null))[_0xf31a('0x2a')](saveUpdates(_0x19c85e[_0xf31a('0x60')],null))[_0xf31a('0x2a')](respondWithResult(_0x36ceca,null))['catch'](handleError(_0x36ceca,null));};