9ba9bab149adb3edebba70394c7c8c245eff11d2
[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 _0xca8a=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','show','params','model','keys','query','intersection','attributes','fields','include','merge','options','DashboardItem','find','catch','type','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','squel','desk.js','papaparse','../../components/auth/service'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xca8a,0x1a6));var _0xaca8=function(_0x12b1ee,_0x4e2af8){_0x12b1ee=_0x12b1ee-0x0;var _0x222b82=_0xca8a[_0x12b1ee];return _0x222b82;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xaca8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xaca8('0x1'));var jsonpatch=require(_0xaca8('0x2'));var rp=require(_0xaca8('0x3'));var moment=require(_0xaca8('0x4'));var BPromise=require(_0xaca8('0x5'));var Mustache=require(_0xaca8('0x6'));var util=require('util');var path=require(_0xaca8('0x7'));var sox=require('sox');var csv=require(_0xaca8('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xaca8('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xaca8('0xa'));var toCsv=require(_0xaca8('0x8'));var querystring=require('querystring');var Papa=require(_0xaca8('0xb'));var Redis=require('ioredis');var authService=require(_0xaca8('0xc'));var qs=require(_0xaca8('0xd'));var as=require(_0xaca8('0xe'));var hardwareService=require(_0xaca8('0xf'));var logger=require(_0xaca8('0x10'))('api');var utils=require(_0xaca8('0x11'));var config=require(_0xaca8('0x12'));var licenseUtil=require(_0xaca8('0x13'));var db=require(_0xaca8('0x14'))['db'];config['redis']=_[_0xaca8('0x15')](config[_0xaca8('0x16')],{'host':_0xaca8('0x17'),'port':0x18eb});var socket=require(_0xaca8('0x18'))(new Redis(config['redis']));require(_0xaca8('0x19'))[_0xaca8('0x1a')](socket);function respondWithStatusCode(_0x1ce660,_0x4432ea){_0x4432ea=_0x4432ea||0xcc;return function(_0x35c600){if(_0x35c600){return _0x1ce660[_0xaca8('0x1b')](_0x4432ea);}return _0x1ce660[_0xaca8('0x1c')](_0x4432ea)[_0xaca8('0x1d')]();};}function respondWithResult(_0xef467c,_0x23b328){_0x23b328=_0x23b328||0xc8;return function(_0x21d40e){if(_0x21d40e){return _0xef467c[_0xaca8('0x1c')](_0x23b328)[_0xaca8('0x1e')](_0x21d40e);}};}function respondWithFilteredResult(_0x9b78ea,_0x5b25ee){return function(_0x50a36e){if(_0x50a36e){var _0x4dfed0=_0x50a36e[_0xaca8('0x1f')],_0xcb573a=_0x5b25ee[_0xaca8('0x20')],_0xcfd325=_0x5b25ee[_0xaca8('0x20')]+_0x5b25ee[_0xaca8('0x21')],_0x2a125c;if(_0xcfd325>=_0x4dfed0){_0xcfd325=_0x4dfed0;_0x2a125c=0xc8;}else{_0x2a125c=0xce;}_0x9b78ea[_0xaca8('0x1c')](_0x2a125c);return _0x9b78ea[_0xaca8('0x22')](_0xaca8('0x23'),_0xcb573a+'-'+_0xcfd325+'/'+_0x4dfed0)['json'](_0x50a36e);}return null;};}function patchUpdates(_0xd1661e){return function(_0x9e169){try{jsonpatch[_0xaca8('0x24')](_0x9e169,_0xd1661e,!![]);}catch(_0x5edeed){return BPromise[_0xaca8('0x25')](_0x5edeed);}return _0x9e169[_0xaca8('0x26')]();};}function saveUpdates(_0x13cae4,_0x3bb780){return function(_0x1e2b7c){if(_0x1e2b7c){return _0x1e2b7c[_0xaca8('0x27')](_0x13cae4)[_0xaca8('0x28')](function(_0x415811){return _0x415811;});}return null;};}function removeEntity(_0x2827dc,_0x521ccc){return function(_0x470f11){if(_0x470f11){return _0x470f11[_0xaca8('0x29')]()[_0xaca8('0x28')](function(){_0x2827dc[_0xaca8('0x1c')](0xcc)[_0xaca8('0x1d')]();});}};}function handleEntityNotFound(_0x4ddffd,_0x5f3483){return function(_0x4acef3){if(!_0x4acef3){_0x4ddffd[_0xaca8('0x1b')](0x194);}return _0x4acef3;};}function handleError(_0x214614,_0x42bde6){_0x42bde6=_0x42bde6||0x1f4;return function(_0x57923e){logger[_0xaca8('0x2a')](_0x57923e[_0xaca8('0x2b')]);if(_0x57923e[_0xaca8('0x2c')]){delete _0x57923e[_0xaca8('0x2c')];}_0x214614[_0xaca8('0x1c')](_0x42bde6)['send'](_0x57923e);};}exports[_0xaca8('0x2d')]=function(_0xaff0f2,_0x3045c1){var _0x4ede13={'raw':![],'where':{'id':_0xaff0f2[_0xaca8('0x2e')]['id']}},_0x2ab47a={};_0x2ab47a[_0xaca8('0x2f')]=_[_0xaca8('0x30')](db['DashboardItem']['rawAttributes']);_0x2ab47a['query']=_[_0xaca8('0x30')](_0xaff0f2[_0xaca8('0x31')]);_0x2ab47a['filtears']=_[_0xaca8('0x32')](_0x2ab47a[_0xaca8('0x2f')],_0x2ab47a[_0xaca8('0x31')]);_0x4ede13[_0xaca8('0x33')]=_[_0xaca8('0x32')](_0x2ab47a[_0xaca8('0x2f')],qs[_0xaca8('0x34')](_0xaff0f2[_0xaca8('0x31')][_0xaca8('0x34')]));_0x4ede13['attributes']=_0x4ede13[_0xaca8('0x33')]['length']?_0x4ede13[_0xaca8('0x33')]:_0x2ab47a[_0xaca8('0x2f')];if(_0xaff0f2[_0xaca8('0x31')]['includeAll']){_0x4ede13[_0xaca8('0x35')]=[{'all':!![]}];}_0x4ede13=_[_0xaca8('0x36')]({},_0x4ede13,_0xaff0f2[_0xaca8('0x37')]);return db[_0xaca8('0x38')][_0xaca8('0x39')](_0x4ede13)['then'](handleEntityNotFound(_0x3045c1,null))['then'](respondWithResult(_0x3045c1,null))[_0xaca8('0x3a')](handleError(_0x3045c1,null));};exports[_0xaca8('0x29')]=function(_0x5308d4,_0x3637de){return db[_0xaca8('0x38')][_0xaca8('0x39')]({'where':{'id':_0x5308d4[_0xaca8('0x2e')]['id']}})[_0xaca8('0x28')](handleEntityNotFound(_0x3637de,null))['then'](removeEntity(_0x3637de,null))[_0xaca8('0x3a')](handleError(_0x3637de,null));};function widgetAttributes(_0x40732f){try{switch(_0x40732f[_0xaca8('0x3b')]){case'iframe':return[{'name':_0xaca8('0x3c'),'value':_0x40732f[_0xaca8('0x3c')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x0]?_0x40732f[_0xaca8('0x3d')][0x0]['value']:undefined)||_0xaca8('0x3e')}];case _0xaca8('0x3f'):return[{'name':_0xaca8('0x40'),'value':_0x40732f[_0xaca8('0x40')]||(_0x40732f['attrs']&&_0x40732f[_0xaca8('0x3d')][0x0]?_0x40732f[_0xaca8('0x3d')][0x0][_0xaca8('0x41')]:undefined)||''}];case _0xaca8('0x42'):return[{'name':_0xaca8('0x43'),'value':_0x40732f[_0xaca8('0x43')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x0]?_0x40732f['attrs'][0x0][_0xaca8('0x41')]:undefined)||'HH:mm:ss'},{'name':_0xaca8('0x44'),'value':_0x40732f['attrTimezone']||(_0x40732f['attrs']&&_0x40732f[_0xaca8('0x3d')][0x1]?_0x40732f[_0xaca8('0x3d')][0x1][_0xaca8('0x41')]:undefined)||_0xaca8('0x45')},{'name':_0xaca8('0x46'),'value':_0x40732f[_0xaca8('0x46')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f['attrs'][0x2]?_0x40732f['attrs'][0x2][_0xaca8('0x41')]:undefined)||0xc}];case _0xaca8('0x47'):return[{'name':_0xaca8('0x48'),'value':_0x40732f[_0xaca8('0x48')]||(_0x40732f['attrs']&&_0x40732f[_0xaca8('0x3d')][0x0]?_0x40732f['attrs'][0x0][_0xaca8('0x41')]:undefined)||_0xaca8('0x49')},{'name':_0xaca8('0x4a'),'value':_0x40732f['attrVoiceQueues']||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x1]?_0x40732f['attrs'][0x1][_0xaca8('0x41')]:undefined)||[]},{'name':_0xaca8('0x46'),'value':_0x40732f[_0xaca8('0x46')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x2]?_0x40732f[_0xaca8('0x3d')][0x2]['value']:undefined)||0x14}];case _0xaca8('0x4b'):case _0xaca8('0x4c'):return[{'name':_0xaca8('0x4d'),'value':_0x40732f[_0xaca8('0x4d')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f['attrs'][0x0]?_0x40732f['attrs'][0x0]['value']:undefined)||_0xaca8('0x49')},{'name':'attrSerie2','value':_0x40732f[_0xaca8('0x4e')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x1]?_0x40732f[_0xaca8('0x3d')][0x1]['value']:undefined)||null},{'name':'attrSerie3','value':_0x40732f[_0xaca8('0x4f')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x2]?_0x40732f['attrs'][0x2]['value']:undefined)||null},{'name':'attrVoiceQueues','value':_0x40732f[_0xaca8('0x4a')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x3]?_0x40732f[_0xaca8('0x3d')][0x3][_0xaca8('0x41')]:undefined)||[]}];case _0xaca8('0x50'):return[{'name':'attrReport','type':_0x40732f[_0xaca8('0x51')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x0]?_0x40732f[_0xaca8('0x3d')][0x0][_0xaca8('0x3b')]:undefined)||null,'value':_0x40732f['attrReport']||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f['attrs'][0x0]?_0x40732f[_0xaca8('0x3d')][0x0][_0xaca8('0x41')]:undefined)||null},{'name':_0xaca8('0x52'),'value':_0x40732f[_0xaca8('0x52')]||(_0x40732f[_0xaca8('0x3d')]&&_0x40732f[_0xaca8('0x3d')][0x1]?_0x40732f[_0xaca8('0x3d')][0x1][_0xaca8('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x739c9){logger['error'](_0xaca8('0x53'),JSON[_0xaca8('0x54')](_0x739c9));return[];}}exports['create']=function(_0x44e15c,_0x2a6744){if(_0x44e15c[_0xaca8('0x55')]){_0x44e15c[_0xaca8('0x55')]['attrs']=widgetAttributes(_0x44e15c[_0xaca8('0x55')]);}return db[_0xaca8('0x38')][_0xaca8('0x56')](_0x44e15c[_0xaca8('0x55')],{})['then'](respondWithResult(_0x2a6744,0xc9))[_0xaca8('0x3a')](handleError(_0x2a6744,null));};exports[_0xaca8('0x27')]=function(_0x3ea18b,_0x58d645){if(_0x3ea18b[_0xaca8('0x55')]['id']){delete _0x3ea18b[_0xaca8('0x55')]['id'];}_0x3ea18b[_0xaca8('0x55')]['attrs']=widgetAttributes(_0x3ea18b[_0xaca8('0x55')]);return db[_0xaca8('0x38')][_0xaca8('0x39')]({'where':{'id':_0x3ea18b[_0xaca8('0x2e')]['id']}})[_0xaca8('0x28')](handleEntityNotFound(_0x58d645,null))['then'](saveUpdates(_0x3ea18b['body'],null))[_0xaca8('0x28')](respondWithResult(_0x58d645,null))[_0xaca8('0x3a')](handleError(_0x58d645,null));};