0e04457491917fafe05ebb73e218187d7279be14
[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 _0xbd25=['apply','reject','save','update','then','end','error','stack','name','show','params','model','keys','rawAttributes','query','intersection','fields','attributes','length','includeAll','include','options','DashboardItem','find','catch','destroy','type','iframe','attrUrl','attrs','value','https://','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','counter','attrMetric','total','attrVoiceQueues','attrFontSize','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','stringify','body','create','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','json','count','offset','limit','set','Content-Range'];(function(_0x2338fa,_0x80579a){var _0x42df9b=function(_0x13fe56){while(--_0x13fe56){_0x2338fa['push'](_0x2338fa['shift']());}};_0x42df9b(++_0x80579a);}(_0xbd25,0x1ec));var _0x5bd2=function(_0x2c0fd2,_0x21f4b9){_0x2c0fd2=_0x2c0fd2-0x0;var _0x38a1d8=_0xbd25[_0x2c0fd2];return _0x38a1d8;};'use strict';var emlformat=require(_0x5bd2('0x0'));var rimraf=require(_0x5bd2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5bd2('0x2'));var BPromise=require(_0x5bd2('0x3'));var Mustache=require('mustache');var util=require(_0x5bd2('0x4'));var path=require(_0x5bd2('0x5'));var sox=require(_0x5bd2('0x6'));var csv=require(_0x5bd2('0x7'));var ejs=require(_0x5bd2('0x8'));var fs=require('fs');var fs_extra=require(_0x5bd2('0x9'));var _=require(_0x5bd2('0xa'));var squel=require(_0x5bd2('0xb'));var crypto=require('crypto');var jsforce=require(_0x5bd2('0xc'));var deskjs=require(_0x5bd2('0xd'));var toCsv=require(_0x5bd2('0x7'));var querystring=require(_0x5bd2('0xe'));var Papa=require(_0x5bd2('0xf'));var Redis=require(_0x5bd2('0x10'));var authService=require(_0x5bd2('0x11'));var qs=require(_0x5bd2('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5bd2('0x13'))('api');var utils=require(_0x5bd2('0x14'));var config=require(_0x5bd2('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x5bd2('0x16'))['db'];config[_0x5bd2('0x17')]=_[_0x5bd2('0x18')](config[_0x5bd2('0x17')],{'host':_0x5bd2('0x19'),'port':0x18eb});var socket=require(_0x5bd2('0x1a'))(new Redis(config[_0x5bd2('0x17')]));require(_0x5bd2('0x1b'))['register'](socket);function respondWithStatusCode(_0x12f21d,_0x2b54ea){_0x2b54ea=_0x2b54ea||0xcc;return function(_0x320af4){if(_0x320af4){return _0x12f21d[_0x5bd2('0x1c')](_0x2b54ea);}return _0x12f21d[_0x5bd2('0x1d')](_0x2b54ea)['end']();};}function respondWithResult(_0xd5ed74,_0x4d1c40){_0x4d1c40=_0x4d1c40||0xc8;return function(_0x1ae64a){if(_0x1ae64a){return _0xd5ed74[_0x5bd2('0x1d')](_0x4d1c40)[_0x5bd2('0x1e')](_0x1ae64a);}};}function respondWithFilteredResult(_0x53ac7c,_0xbbc0df){return function(_0x765c0c){if(_0x765c0c){var _0x64c5c4=_0x765c0c[_0x5bd2('0x1f')],_0xf08880=_0xbbc0df[_0x5bd2('0x20')],_0x134473=_0xbbc0df[_0x5bd2('0x20')]+_0xbbc0df[_0x5bd2('0x21')],_0x2ee8b7;if(_0x134473>=_0x64c5c4){_0x134473=_0x64c5c4;_0x2ee8b7=0xc8;}else{_0x2ee8b7=0xce;}_0x53ac7c[_0x5bd2('0x1d')](_0x2ee8b7);return _0x53ac7c[_0x5bd2('0x22')](_0x5bd2('0x23'),_0xf08880+'-'+_0x134473+'/'+_0x64c5c4)[_0x5bd2('0x1e')](_0x765c0c);}return null;};}function patchUpdates(_0x1e9dfb){return function(_0x13d4af){try{jsonpatch[_0x5bd2('0x24')](_0x13d4af,_0x1e9dfb,!![]);}catch(_0x275bec){return BPromise[_0x5bd2('0x25')](_0x275bec);}return _0x13d4af[_0x5bd2('0x26')]();};}function saveUpdates(_0x4422b3,_0x70cd65){return function(_0x594035){if(_0x594035){return _0x594035[_0x5bd2('0x27')](_0x4422b3)[_0x5bd2('0x28')](function(_0x2740e2){return _0x2740e2;});}return null;};}function removeEntity(_0x59deb1,_0x59be42){return function(_0xd43275){if(_0xd43275){return _0xd43275['destroy']()[_0x5bd2('0x28')](function(){_0x59deb1[_0x5bd2('0x1d')](0xcc)[_0x5bd2('0x29')]();});}};}function handleEntityNotFound(_0x5f5d0b,_0x4c89ef){return function(_0xa0b23a){if(!_0xa0b23a){_0x5f5d0b[_0x5bd2('0x1c')](0x194);}return _0xa0b23a;};}function handleError(_0x191d7f,_0x366558){_0x366558=_0x366558||0x1f4;return function(_0x37feb0){logger[_0x5bd2('0x2a')](_0x37feb0[_0x5bd2('0x2b')]);if(_0x37feb0[_0x5bd2('0x2c')]){delete _0x37feb0[_0x5bd2('0x2c')];}_0x191d7f[_0x5bd2('0x1d')](_0x366558)['send'](_0x37feb0);};}exports[_0x5bd2('0x2d')]=function(_0x3163de,_0x215ff2){var _0x213212={'raw':![],'where':{'id':_0x3163de[_0x5bd2('0x2e')]['id']}},_0x16d16b={};_0x16d16b[_0x5bd2('0x2f')]=_[_0x5bd2('0x30')](db['DashboardItem'][_0x5bd2('0x31')]);_0x16d16b[_0x5bd2('0x32')]=_[_0x5bd2('0x30')](_0x3163de[_0x5bd2('0x32')]);_0x16d16b['filters']=_[_0x5bd2('0x33')](_0x16d16b['model'],_0x16d16b[_0x5bd2('0x32')]);_0x213212['attributes']=_['intersection'](_0x16d16b[_0x5bd2('0x2f')],qs['fields'](_0x3163de['query'][_0x5bd2('0x34')]));_0x213212[_0x5bd2('0x35')]=_0x213212[_0x5bd2('0x35')][_0x5bd2('0x36')]?_0x213212[_0x5bd2('0x35')]:_0x16d16b[_0x5bd2('0x2f')];if(_0x3163de[_0x5bd2('0x32')][_0x5bd2('0x37')]){_0x213212[_0x5bd2('0x38')]=[{'all':!![]}];}_0x213212=_['merge']({},_0x213212,_0x3163de[_0x5bd2('0x39')]);return db[_0x5bd2('0x3a')][_0x5bd2('0x3b')](_0x213212)[_0x5bd2('0x28')](handleEntityNotFound(_0x215ff2,null))[_0x5bd2('0x28')](respondWithResult(_0x215ff2,null))[_0x5bd2('0x3c')](handleError(_0x215ff2,null));};exports[_0x5bd2('0x3d')]=function(_0x5603fc,_0x20be72){return db[_0x5bd2('0x3a')][_0x5bd2('0x3b')]({'where':{'id':_0x5603fc[_0x5bd2('0x2e')]['id']}})[_0x5bd2('0x28')](handleEntityNotFound(_0x20be72,null))[_0x5bd2('0x28')](removeEntity(_0x20be72,null))[_0x5bd2('0x3c')](handleError(_0x20be72,null));};function widgetAttributes(_0x4e3048){try{switch(_0x4e3048[_0x5bd2('0x3e')]){case _0x5bd2('0x3f'):return[{'name':_0x5bd2('0x40'),'value':_0x4e3048[_0x5bd2('0x40')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048['attrs'][0x0][_0x5bd2('0x42')]:undefined)||_0x5bd2('0x43')}];case'custom':return[{'name':_0x5bd2('0x44'),'value':_0x4e3048[_0x5bd2('0x44')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x42')]:undefined)||''}];case'clock':return[{'name':_0x5bd2('0x45'),'value':_0x4e3048[_0x5bd2('0x45')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x42')]:undefined)||_0x5bd2('0x46')},{'name':_0x5bd2('0x47'),'value':_0x4e3048[_0x5bd2('0x47')]||(_0x4e3048['attrs']&&_0x4e3048[_0x5bd2('0x41')][0x1]?_0x4e3048['attrs'][0x1][_0x5bd2('0x42')]:undefined)||_0x5bd2('0x48')},{'name':'attrFontSize','value':_0x4e3048['attrFontSize']||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x2]?_0x4e3048[_0x5bd2('0x41')][0x2][_0x5bd2('0x42')]:undefined)||0xc}];case _0x5bd2('0x49'):return[{'name':_0x5bd2('0x4a'),'value':_0x4e3048[_0x5bd2('0x4a')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x42')]:undefined)||_0x5bd2('0x4b')},{'name':_0x5bd2('0x4c'),'value':_0x4e3048[_0x5bd2('0x4c')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x1]?_0x4e3048[_0x5bd2('0x41')][0x1]['value']:undefined)||[]},{'name':_0x5bd2('0x4d'),'value':_0x4e3048[_0x5bd2('0x4d')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x2]?_0x4e3048[_0x5bd2('0x41')][0x2][_0x5bd2('0x42')]:undefined)||0x14}];case'multibar-chart':case _0x5bd2('0x4e'):return[{'name':_0x5bd2('0x4f'),'value':_0x4e3048['attrSerie1']||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x42')]:undefined)||_0x5bd2('0x4b')},{'name':_0x5bd2('0x50'),'value':_0x4e3048['attrSerie2']||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x1]?_0x4e3048[_0x5bd2('0x41')][0x1][_0x5bd2('0x42')]:undefined)||null},{'name':_0x5bd2('0x51'),'value':_0x4e3048['attrSerie3']||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048['attrs'][0x2]?_0x4e3048[_0x5bd2('0x41')][0x2][_0x5bd2('0x42')]:undefined)||null},{'name':_0x5bd2('0x4c'),'value':_0x4e3048[_0x5bd2('0x4c')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x3]?_0x4e3048[_0x5bd2('0x41')][0x3][_0x5bd2('0x42')]:undefined)||[]}];case'web-report':return[{'name':_0x5bd2('0x52'),'type':_0x4e3048[_0x5bd2('0x53')]||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048[_0x5bd2('0x41')][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x3e')]:undefined)||null,'value':_0x4e3048['attrReport']||(_0x4e3048[_0x5bd2('0x41')]&&_0x4e3048['attrs'][0x0]?_0x4e3048[_0x5bd2('0x41')][0x0][_0x5bd2('0x42')]:undefined)||null},{'name':_0x5bd2('0x54'),'value':_0x4e3048[_0x5bd2('0x54')]||(_0x4e3048['attrs']&&_0x4e3048['attrs'][0x1]?_0x4e3048[_0x5bd2('0x41')][0x1][_0x5bd2('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x16d934){logger[_0x5bd2('0x2a')]('widgetAttributes:\x20%s',JSON[_0x5bd2('0x55')](_0x16d934));return[];}}exports['create']=function(_0x21ba60,_0x1ca75a){if(_0x21ba60[_0x5bd2('0x56')]){_0x21ba60[_0x5bd2('0x56')]['attrs']=widgetAttributes(_0x21ba60[_0x5bd2('0x56')]);}return db[_0x5bd2('0x3a')][_0x5bd2('0x57')](_0x21ba60[_0x5bd2('0x56')],{})['then'](respondWithResult(_0x1ca75a,0xc9))[_0x5bd2('0x3c')](handleError(_0x1ca75a,null));};exports[_0x5bd2('0x27')]=function(_0x23ad13,_0x338c95){if(_0x23ad13[_0x5bd2('0x56')]['id']){delete _0x23ad13[_0x5bd2('0x56')]['id'];}_0x23ad13['body'][_0x5bd2('0x41')]=widgetAttributes(_0x23ad13[_0x5bd2('0x56')]);return db['DashboardItem']['find']({'where':{'id':_0x23ad13[_0x5bd2('0x2e')]['id']}})[_0x5bd2('0x28')](handleEntityNotFound(_0x338c95,null))[_0x5bd2('0x28')](saveUpdates(_0x23ad13[_0x5bd2('0x56')],null))[_0x5bd2('0x28')](respondWithResult(_0x338c95,null))[_0x5bd2('0x3c')](handleError(_0x338c95,null));};