2fcd028e33be10b06dbde9f7759442e69cf2b4fa
[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 _0x3e33=['DashboardItem','rawAttributes','keys','query','filters','intersection','fields','attributes','length','includeAll','include','merge','find','catch','type','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','create','body','update','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','redis','./dashboardItem.socket','register','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','then','error','stack','name','send','show','params','model'];(function(_0x513483,_0x105ccd){var _0x384a1e=function(_0x47bb41){while(--_0x47bb41){_0x513483['push'](_0x513483['shift']());}};_0x384a1e(++_0x105ccd);}(_0x3e33,0x1d3));var _0x33e3=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3e33[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x33e3('0x0'));var rimraf=require(_0x33e3('0x1'));var zipdir=require(_0x33e3('0x2'));var jsonpatch=require(_0x33e3('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x33e3('0x4'));var Mustache=require(_0x33e3('0x5'));var util=require('util');var path=require('path');var sox=require(_0x33e3('0x6'));var csv=require(_0x33e3('0x7'));var ejs=require(_0x33e3('0x8'));var fs=require('fs');var _=require(_0x33e3('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x33e3('0xa'));var deskjs=require(_0x33e3('0xb'));var toCsv=require('to-csv');var querystring=require(_0x33e3('0xc'));var Papa=require(_0x33e3('0xd'));var Redis=require(_0x33e3('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x33e3('0xf'));var as=require(_0x33e3('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x33e3('0x11'));var utils=require(_0x33e3('0x12'));var config=require(_0x33e3('0x13'));var licenseUtil=require(_0x33e3('0x14'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x33e3('0x15')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x33e3('0x16'))[_0x33e3('0x17')](socket);function respondWithStatusCode(_0x4e2b7e,_0x9f0bd5){_0x9f0bd5=_0x9f0bd5||0xcc;return function(_0x4fe123){if(_0x4fe123){return _0x4e2b7e[_0x33e3('0x18')](_0x9f0bd5);}return _0x4e2b7e[_0x33e3('0x19')](_0x9f0bd5)[_0x33e3('0x1a')]();};}function respondWithResult(_0x1d184b,_0x475634){_0x475634=_0x475634||0xc8;return function(_0x20770c){if(_0x20770c){return _0x1d184b[_0x33e3('0x19')](_0x475634)['json'](_0x20770c);}};}function respondWithFilteredResult(_0x1495f7,_0xb763a8){return function(_0x3f4672){if(_0x3f4672){var _0x422cdb=_0x3f4672[_0x33e3('0x1b')],_0x3f446d=_0xb763a8[_0x33e3('0x1c')],_0x178d22=_0xb763a8['offset']+_0xb763a8[_0x33e3('0x1d')],_0x19c884;if(_0x178d22>=_0x422cdb){_0x178d22=_0x422cdb;_0x19c884=0xc8;}else{_0x19c884=0xce;}_0x1495f7[_0x33e3('0x19')](_0x19c884);return _0x1495f7[_0x33e3('0x1e')](_0x33e3('0x1f'),_0x3f446d+'-'+_0x178d22+'/'+_0x422cdb)[_0x33e3('0x20')](_0x3f4672);}return null;};}function patchUpdates(_0x124987){return function(_0x33ddb9){try{jsonpatch[_0x33e3('0x21')](_0x33ddb9,_0x124987,!![]);}catch(_0x28ba00){return BPromise['reject'](_0x28ba00);}return _0x33ddb9[_0x33e3('0x22')]();};}function saveUpdates(_0x3fdf35,_0x14669f){return function(_0x44efab){if(_0x44efab){return _0x44efab['update'](_0x3fdf35)[_0x33e3('0x23')](function(_0x56b52f){return _0x56b52f;});}return null;};}function removeEntity(_0x1196c6,_0xa92408){return function(_0x582d54){if(_0x582d54){return _0x582d54['destroy']()[_0x33e3('0x23')](function(){_0x1196c6[_0x33e3('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x302e52,_0x9dd85b){return function(_0x5a40cd){if(!_0x5a40cd){_0x302e52['sendStatus'](0x194);}return _0x5a40cd;};}function handleError(_0x2cd50d,_0xe487f1){_0xe487f1=_0xe487f1||0x1f4;return function(_0x486c6c){logger[_0x33e3('0x24')](_0x486c6c[_0x33e3('0x25')]);if(_0x486c6c[_0x33e3('0x26')]){delete _0x486c6c[_0x33e3('0x26')];}_0x2cd50d[_0x33e3('0x19')](_0xe487f1)[_0x33e3('0x27')](_0x486c6c);};}exports[_0x33e3('0x28')]=function(_0x50d311,_0xedafad){var _0x30375c={'raw':![],'where':{'id':_0x50d311[_0x33e3('0x29')]['id']}},_0x513cc8={};_0x513cc8[_0x33e3('0x2a')]=_['keys'](db[_0x33e3('0x2b')][_0x33e3('0x2c')]);_0x513cc8['query']=_[_0x33e3('0x2d')](_0x50d311[_0x33e3('0x2e')]);_0x513cc8[_0x33e3('0x2f')]=_[_0x33e3('0x30')](_0x513cc8[_0x33e3('0x2a')],_0x513cc8[_0x33e3('0x2e')]);_0x30375c['attributes']=_['intersection'](_0x513cc8[_0x33e3('0x2a')],qs[_0x33e3('0x31')](_0x50d311[_0x33e3('0x2e')]['fields']));_0x30375c['attributes']=_0x30375c[_0x33e3('0x32')][_0x33e3('0x33')]?_0x30375c[_0x33e3('0x32')]:_0x513cc8['model'];if(_0x50d311[_0x33e3('0x2e')][_0x33e3('0x34')]){_0x30375c[_0x33e3('0x35')]=[{'all':!![]}];}_0x30375c=_[_0x33e3('0x36')]({},_0x30375c,_0x50d311['options']);return db['DashboardItem'][_0x33e3('0x37')](_0x30375c)['then'](handleEntityNotFound(_0xedafad,null))[_0x33e3('0x23')](respondWithResult(_0xedafad,null))['catch'](handleError(_0xedafad,null));};exports['destroy']=function(_0x10acfc,_0x1c13d2){return db[_0x33e3('0x2b')][_0x33e3('0x37')]({'where':{'id':_0x10acfc[_0x33e3('0x29')]['id']}})[_0x33e3('0x23')](handleEntityNotFound(_0x1c13d2,null))[_0x33e3('0x23')](removeEntity(_0x1c13d2,null))[_0x33e3('0x38')](handleError(_0x1c13d2,null));};function widgetAttributes(_0x3e8bae){try{switch(_0x3e8bae[_0x33e3('0x39')]){case'iframe':return[{'name':'attrUrl','value':_0x3e8bae[_0x33e3('0x3a')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae[_0x33e3('0x3b')][0x0]?_0x3e8bae[_0x33e3('0x3b')][0x0][_0x33e3('0x3c')]:undefined)||'https://'}];case _0x33e3('0x3d'):return[{'name':_0x33e3('0x3e'),'value':_0x3e8bae[_0x33e3('0x3e')]||(_0x3e8bae['attrs']&&_0x3e8bae[_0x33e3('0x3b')][0x0]?_0x3e8bae['attrs'][0x0][_0x33e3('0x3c')]:undefined)||''}];case _0x33e3('0x3f'):return[{'name':'attrHourFormat','value':_0x3e8bae[_0x33e3('0x40')]||(_0x3e8bae['attrs']&&_0x3e8bae[_0x33e3('0x3b')][0x0]?_0x3e8bae[_0x33e3('0x3b')][0x0][_0x33e3('0x3c')]:undefined)||_0x33e3('0x41')},{'name':'attrTimezone','value':_0x3e8bae[_0x33e3('0x42')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae['attrs'][0x1]?_0x3e8bae[_0x33e3('0x3b')][0x1]['value']:undefined)||_0x33e3('0x43')},{'name':_0x33e3('0x44'),'value':_0x3e8bae[_0x33e3('0x44')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae[_0x33e3('0x3b')][0x2]?_0x3e8bae[_0x33e3('0x3b')][0x2][_0x33e3('0x3c')]:undefined)||0xc}];case _0x33e3('0x45'):return[{'name':_0x33e3('0x46'),'value':_0x3e8bae[_0x33e3('0x46')]||(_0x3e8bae['attrs']&&_0x3e8bae['attrs'][0x0]?_0x3e8bae[_0x33e3('0x3b')][0x0][_0x33e3('0x3c')]:undefined)||_0x33e3('0x47')},{'name':'attrVoiceQueues','value':_0x3e8bae[_0x33e3('0x48')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae[_0x33e3('0x3b')][0x1]?_0x3e8bae[_0x33e3('0x3b')][0x1][_0x33e3('0x3c')]:undefined)||[]},{'name':_0x33e3('0x44'),'value':_0x3e8bae[_0x33e3('0x44')]||(_0x3e8bae['attrs']&&_0x3e8bae[_0x33e3('0x3b')][0x2]?_0x3e8bae[_0x33e3('0x3b')][0x2][_0x33e3('0x3c')]:undefined)||0x14}];case _0x33e3('0x49'):case'pie-chart':return[{'name':_0x33e3('0x4a'),'value':_0x3e8bae['attrSerie1']||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae['attrs'][0x0]?_0x3e8bae['attrs'][0x0]['value']:undefined)||_0x33e3('0x47')},{'name':_0x33e3('0x4b'),'value':_0x3e8bae[_0x33e3('0x4b')]||(_0x3e8bae['attrs']&&_0x3e8bae[_0x33e3('0x3b')][0x1]?_0x3e8bae['attrs'][0x1][_0x33e3('0x3c')]:undefined)||null},{'name':_0x33e3('0x4c'),'value':_0x3e8bae[_0x33e3('0x4c')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae[_0x33e3('0x3b')][0x2]?_0x3e8bae[_0x33e3('0x3b')][0x2]['value']:undefined)||null},{'name':_0x33e3('0x48'),'value':_0x3e8bae[_0x33e3('0x48')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae['attrs'][0x3]?_0x3e8bae['attrs'][0x3][_0x33e3('0x3c')]:undefined)||[]}];case _0x33e3('0x4d'):return[{'name':_0x33e3('0x4e'),'type':_0x3e8bae[_0x33e3('0x4f')]||(_0x3e8bae['attrs']&&_0x3e8bae[_0x33e3('0x3b')][0x0]?_0x3e8bae[_0x33e3('0x3b')][0x0][_0x33e3('0x39')]:undefined)||null,'value':_0x3e8bae[_0x33e3('0x4e')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae['attrs'][0x0]?_0x3e8bae[_0x33e3('0x3b')][0x0][_0x33e3('0x3c')]:undefined)||null},{'name':_0x33e3('0x50'),'value':_0x3e8bae[_0x33e3('0x50')]||(_0x3e8bae[_0x33e3('0x3b')]&&_0x3e8bae[_0x33e3('0x3b')][0x1]?_0x3e8bae[_0x33e3('0x3b')][0x1][_0x33e3('0x3c')]:undefined)||0x0}];default:return[];}}catch(_0x28d158){logger[_0x33e3('0x24')](_0x33e3('0x51'),JSON['stringify'](_0x28d158));return[];}}exports[_0x33e3('0x52')]=function(_0x4a4afb,_0x3d9686){if(_0x4a4afb[_0x33e3('0x53')]){_0x4a4afb['body'][_0x33e3('0x3b')]=widgetAttributes(_0x4a4afb[_0x33e3('0x53')]);}return db[_0x33e3('0x2b')][_0x33e3('0x52')](_0x4a4afb[_0x33e3('0x53')],{})[_0x33e3('0x23')](respondWithResult(_0x3d9686,0xc9))[_0x33e3('0x38')](handleError(_0x3d9686,null));};exports[_0x33e3('0x54')]=function(_0x3a8b88,_0x282933){if(_0x3a8b88[_0x33e3('0x53')]['id']){delete _0x3a8b88['body']['id'];}_0x3a8b88['body']['attrs']=widgetAttributes(_0x3a8b88[_0x33e3('0x53')]);return db[_0x33e3('0x2b')][_0x33e3('0x37')]({'where':{'id':_0x3a8b88['params']['id']}})[_0x33e3('0x23')](handleEntityNotFound(_0x282933,null))[_0x33e3('0x23')](saveUpdates(_0x3a8b88[_0x33e3('0x53')],null))[_0x33e3('0x23')](respondWithResult(_0x282933,null))[_0x33e3('0x38')](handleError(_0x282933,null));};