32615676bc794a94c591daef38a5c65637056227
[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 _0x8094=['sendStatus','error','stack','name','show','model','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','params','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','reportType','type','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','status','end','count','offset','limit','Content-Range','apply','reject','save','then','destroy'];(function(_0x17b287,_0x4bed1c){var _0x177054=function(_0x380f78){while(--_0x380f78){_0x17b287['push'](_0x17b287['shift']());}};_0x177054(++_0x4bed1c);}(_0x8094,0x1ab));var _0x4809=function(_0xbd3a05,_0xe6c6b7){_0xbd3a05=_0xbd3a05-0x0;var _0x101f90=_0x8094[_0xbd3a05];return _0x101f90;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4809('0x0'));var rimraf=require(_0x4809('0x1'));var zipdir=require(_0x4809('0x2'));var jsonpatch=require(_0x4809('0x3'));var rp=require(_0x4809('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4809('0x5'));var util=require(_0x4809('0x6'));var path=require(_0x4809('0x7'));var sox=require('sox');var csv=require(_0x4809('0x8'));var ejs=require(_0x4809('0x9'));var fs=require('fs');var _=require(_0x4809('0xa'));var squel=require(_0x4809('0xb'));var crypto=require(_0x4809('0xc'));var jsforce=require(_0x4809('0xd'));var deskjs=require(_0x4809('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4809('0xf'));var Papa=require(_0x4809('0x10'));var Redis=require(_0x4809('0x11'));var authService=require(_0x4809('0x12'));var qs=require(_0x4809('0x13'));var as=require(_0x4809('0x14'));var hardwareService=require(_0x4809('0x15'));var logger=require(_0x4809('0x16'))(_0x4809('0x17'));var utils=require(_0x4809('0x18'));var config=require(_0x4809('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x4809('0x1a')]=_[_0x4809('0x1b')](config[_0x4809('0x1a')],{'host':_0x4809('0x1c'),'port':0x18eb});var socket=require(_0x4809('0x1d'))(new Redis(config[_0x4809('0x1a')]));require(_0x4809('0x1e'))[_0x4809('0x1f')](socket);function respondWithStatusCode(_0x2d07ba,_0x2f6014){_0x2f6014=_0x2f6014||0xcc;return function(_0x445c4b){if(_0x445c4b){return _0x2d07ba['sendStatus'](_0x2f6014);}return _0x2d07ba[_0x4809('0x20')](_0x2f6014)[_0x4809('0x21')]();};}function respondWithResult(_0x2dec3b,_0x1d2145){_0x1d2145=_0x1d2145||0xc8;return function(_0x19da2e){if(_0x19da2e){return _0x2dec3b[_0x4809('0x20')](_0x1d2145)['json'](_0x19da2e);}};}function respondWithFilteredResult(_0x2649a2,_0x3d8ecf){return function(_0x4af086){if(_0x4af086){var _0x51cfd3=_0x4af086[_0x4809('0x22')],_0x308c73=_0x3d8ecf['offset'],_0x45bb79=_0x3d8ecf[_0x4809('0x23')]+_0x3d8ecf[_0x4809('0x24')],_0x55516c;if(_0x45bb79>=_0x51cfd3){_0x45bb79=_0x51cfd3;_0x55516c=0xc8;}else{_0x55516c=0xce;}_0x2649a2[_0x4809('0x20')](_0x55516c);return _0x2649a2['set'](_0x4809('0x25'),_0x308c73+'-'+_0x45bb79+'/'+_0x51cfd3)['json'](_0x4af086);}return null;};}function patchUpdates(_0x5ad05d){return function(_0x1d642c){try{jsonpatch[_0x4809('0x26')](_0x1d642c,_0x5ad05d,!![]);}catch(_0x174e9a){return BPromise[_0x4809('0x27')](_0x174e9a);}return _0x1d642c[_0x4809('0x28')]();};}function saveUpdates(_0x5e2b7c,_0x1e2a11){return function(_0x3c77d3){if(_0x3c77d3){return _0x3c77d3['update'](_0x5e2b7c)[_0x4809('0x29')](function(_0x370e1a){return _0x370e1a;});}return null;};}function removeEntity(_0x41a7b5,_0x456979){return function(_0x5e84dd){if(_0x5e84dd){return _0x5e84dd[_0x4809('0x2a')]()[_0x4809('0x29')](function(){_0x41a7b5['status'](0xcc)[_0x4809('0x21')]();});}};}function handleEntityNotFound(_0x3c1778,_0x18e4fc){return function(_0xb74783){if(!_0xb74783){_0x3c1778[_0x4809('0x2b')](0x194);}return _0xb74783;};}function handleError(_0x4f067a,_0x58a804){_0x58a804=_0x58a804||0x1f4;return function(_0xc42e67){logger[_0x4809('0x2c')](_0xc42e67[_0x4809('0x2d')]);if(_0xc42e67[_0x4809('0x2e')]){delete _0xc42e67[_0x4809('0x2e')];}_0x4f067a[_0x4809('0x20')](_0x58a804)['send'](_0xc42e67);};}exports[_0x4809('0x2f')]=function(_0x901f77,_0x1395f7){var _0xa2436={'raw':![],'where':{'id':_0x901f77['params']['id']}},_0x348782={};_0x348782[_0x4809('0x30')]=_['keys'](db[_0x4809('0x31')][_0x4809('0x32')]);_0x348782[_0x4809('0x33')]=_['keys'](_0x901f77[_0x4809('0x33')]);_0x348782[_0x4809('0x34')]=_[_0x4809('0x35')](_0x348782['model'],_0x348782[_0x4809('0x33')]);_0xa2436[_0x4809('0x36')]=_['intersection'](_0x348782[_0x4809('0x30')],qs[_0x4809('0x37')](_0x901f77[_0x4809('0x33')][_0x4809('0x37')]));_0xa2436[_0x4809('0x36')]=_0xa2436[_0x4809('0x36')][_0x4809('0x38')]?_0xa2436['attributes']:_0x348782[_0x4809('0x30')];if(_0x901f77[_0x4809('0x33')][_0x4809('0x39')]){_0xa2436[_0x4809('0x3a')]=[{'all':!![]}];}_0xa2436=_[_0x4809('0x3b')]({},_0xa2436,_0x901f77[_0x4809('0x3c')]);return db['DashboardItem'][_0x4809('0x3d')](_0xa2436)[_0x4809('0x29')](handleEntityNotFound(_0x1395f7,null))[_0x4809('0x29')](respondWithResult(_0x1395f7,null))[_0x4809('0x3e')](handleError(_0x1395f7,null));};exports['destroy']=function(_0x5408b8,_0x4713c7){return db[_0x4809('0x31')]['find']({'where':{'id':_0x5408b8[_0x4809('0x3f')]['id']}})[_0x4809('0x29')](handleEntityNotFound(_0x4713c7,null))[_0x4809('0x29')](removeEntity(_0x4713c7,null))[_0x4809('0x3e')](handleError(_0x4713c7,null));};function widgetAttributes(_0x3faa87){try{switch(_0x3faa87['type']){case _0x4809('0x40'):return[{'name':'attrUrl','value':_0x3faa87[_0x4809('0x41')]||(_0x3faa87['attrs']&&_0x3faa87['attrs'][0x0]?_0x3faa87[_0x4809('0x42')][0x0][_0x4809('0x43')]:undefined)||_0x4809('0x44')}];case _0x4809('0x45'):return[{'name':_0x4809('0x46'),'value':_0x3faa87[_0x4809('0x46')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87['attrs'][0x0]?_0x3faa87[_0x4809('0x42')][0x0][_0x4809('0x43')]:undefined)||''}];case _0x4809('0x47'):return[{'name':_0x4809('0x48'),'value':_0x3faa87[_0x4809('0x48')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x0]?_0x3faa87[_0x4809('0x42')][0x0][_0x4809('0x43')]:undefined)||'HH:mm:ss'},{'name':'attrTimezone','value':_0x3faa87[_0x4809('0x49')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x1]?_0x3faa87['attrs'][0x1]['value']:undefined)||_0x4809('0x4a')},{'name':_0x4809('0x4b'),'value':_0x3faa87[_0x4809('0x4b')]||(_0x3faa87['attrs']&&_0x3faa87[_0x4809('0x42')][0x2]?_0x3faa87[_0x4809('0x42')][0x2][_0x4809('0x43')]:undefined)||0xc}];case _0x4809('0x4c'):return[{'name':'attrMetric','value':_0x3faa87[_0x4809('0x4d')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x0]?_0x3faa87[_0x4809('0x42')][0x0]['value']:undefined)||'total'},{'name':_0x4809('0x4e'),'value':_0x3faa87[_0x4809('0x4e')]||(_0x3faa87['attrs']&&_0x3faa87[_0x4809('0x42')][0x1]?_0x3faa87[_0x4809('0x42')][0x1][_0x4809('0x43')]:undefined)||[]},{'name':_0x4809('0x4b'),'value':_0x3faa87[_0x4809('0x4b')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x2]?_0x3faa87['attrs'][0x2]['value']:undefined)||0x14}];case _0x4809('0x4f'):case _0x4809('0x50'):return[{'name':'attrSerie1','value':_0x3faa87[_0x4809('0x51')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87['attrs'][0x0]?_0x3faa87[_0x4809('0x42')][0x0][_0x4809('0x43')]:undefined)||_0x4809('0x52')},{'name':_0x4809('0x53'),'value':_0x3faa87['attrSerie2']||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x1]?_0x3faa87[_0x4809('0x42')][0x1][_0x4809('0x43')]:undefined)||null},{'name':_0x4809('0x54'),'value':_0x3faa87[_0x4809('0x54')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87['attrs'][0x2]?_0x3faa87[_0x4809('0x42')][0x2][_0x4809('0x43')]:undefined)||null},{'name':_0x4809('0x4e'),'value':_0x3faa87[_0x4809('0x4e')]||(_0x3faa87['attrs']&&_0x3faa87[_0x4809('0x42')][0x3]?_0x3faa87['attrs'][0x3][_0x4809('0x43')]:undefined)||[]}];case _0x4809('0x55'):return[{'name':'attrReport','type':_0x3faa87[_0x4809('0x56')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x0]?_0x3faa87[_0x4809('0x42')][0x0][_0x4809('0x57')]:undefined)||null,'value':_0x3faa87[_0x4809('0x58')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87['attrs'][0x0]?_0x3faa87[_0x4809('0x42')][0x0]['value']:undefined)||null},{'name':_0x4809('0x59'),'value':_0x3faa87[_0x4809('0x59')]||(_0x3faa87[_0x4809('0x42')]&&_0x3faa87[_0x4809('0x42')][0x1]?_0x3faa87[_0x4809('0x42')][0x1][_0x4809('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x42d3ac){logger[_0x4809('0x2c')](_0x4809('0x5a'),JSON[_0x4809('0x5b')](_0x42d3ac));return[];}}exports[_0x4809('0x5c')]=function(_0x2d2ee4,_0x334aa8){if(_0x2d2ee4['body']){_0x2d2ee4['body'][_0x4809('0x42')]=widgetAttributes(_0x2d2ee4['body']);}return db['DashboardItem']['create'](_0x2d2ee4[_0x4809('0x5d')],{})[_0x4809('0x29')](respondWithResult(_0x334aa8,0xc9))[_0x4809('0x3e')](handleError(_0x334aa8,null));};exports['update']=function(_0x4c2d40,_0x401348){if(_0x4c2d40[_0x4809('0x5d')]['id']){delete _0x4c2d40['body']['id'];}_0x4c2d40[_0x4809('0x5d')][_0x4809('0x42')]=widgetAttributes(_0x4c2d40[_0x4809('0x5d')]);return db[_0x4809('0x31')]['find']({'where':{'id':_0x4c2d40['params']['id']}})[_0x4809('0x29')](handleEntityNotFound(_0x401348,null))['then'](saveUpdates(_0x4c2d40['body'],null))[_0x4809('0x29')](respondWithResult(_0x401348,null))[_0x4809('0x3e')](handleError(_0x401348,null));};