ab60fff6507186ed4376b839707236e155570095
[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 _0x360a=['reportType','attrRefresh','stringify','create','body','update','html-pdf','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','redis','defaults','socket.io-emitter','./dashboardItem.socket','sendStatus','end','status','count','offset','limit','set','Content-Range','json','apply','reject','save','destroy','error','name','show','params','model','keys','query','intersection','attributes','length','include','merge','DashboardItem','then','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x360a,0x156));var _0xa360=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x360a[_0x138adb];return _0x1b27f2;};'use strict';var pdf=require(_0xa360('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa360('0x1'));var zipdir=require(_0xa360('0x2'));var jsonpatch=require(_0xa360('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa360('0x4'));var Mustache=require('mustache');var util=require(_0xa360('0x5'));var path=require(_0xa360('0x6'));var sox=require(_0xa360('0x7'));var csv=require(_0xa360('0x8'));var ejs=require(_0xa360('0x9'));var fs=require('fs');var _=require(_0xa360('0xa'));var squel=require(_0xa360('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa360('0xc'));var toCsv=require(_0xa360('0x8'));var querystring=require(_0xa360('0xd'));var Papa=require(_0xa360('0xe'));var Redis=require(_0xa360('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xa360('0x10'));var as=require(_0xa360('0x11'));var hardwareService=require(_0xa360('0x12'));var logger=require('../../config/logger')(_0xa360('0x13'));var utils=require(_0xa360('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa360('0x15'))['db'];config[_0xa360('0x16')]=_[_0xa360('0x17')](config[_0xa360('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0xa360('0x18'))(new Redis(config[_0xa360('0x16')]));require(_0xa360('0x19'))['register'](socket);function respondWithStatusCode(_0x499ef0,_0x47a4fb){_0x47a4fb=_0x47a4fb||0xcc;return function(_0x296b40){if(_0x296b40){return _0x499ef0[_0xa360('0x1a')](_0x47a4fb);}return _0x499ef0['status'](_0x47a4fb)[_0xa360('0x1b')]();};}function respondWithResult(_0x599341,_0x126605){_0x126605=_0x126605||0xc8;return function(_0x542d42){if(_0x542d42){return _0x599341[_0xa360('0x1c')](_0x126605)['json'](_0x542d42);}};}function respondWithFilteredResult(_0x3d9112,_0x4d9924){return function(_0x598b2e){if(_0x598b2e){var _0x5165cd=_0x598b2e[_0xa360('0x1d')],_0x3db8ce=_0x4d9924[_0xa360('0x1e')],_0x5d6614=_0x4d9924[_0xa360('0x1e')]+_0x4d9924[_0xa360('0x1f')],_0x134344;if(_0x5d6614>=_0x5165cd){_0x5d6614=_0x5165cd;_0x134344=0xc8;}else{_0x134344=0xce;}_0x3d9112['status'](_0x134344);return _0x3d9112[_0xa360('0x20')](_0xa360('0x21'),_0x3db8ce+'-'+_0x5d6614+'/'+_0x5165cd)[_0xa360('0x22')](_0x598b2e);}return null;};}function patchUpdates(_0x538d27){return function(_0x42a8bf){try{jsonpatch[_0xa360('0x23')](_0x42a8bf,_0x538d27,!![]);}catch(_0x1e0ad9){return BPromise[_0xa360('0x24')](_0x1e0ad9);}return _0x42a8bf[_0xa360('0x25')]();};}function saveUpdates(_0x13e1f5,_0x2c1d8d){return function(_0x43a73c){if(_0x43a73c){return _0x43a73c['update'](_0x13e1f5)['then'](function(_0x31d830){return _0x31d830;});}return null;};}function removeEntity(_0x3ca291,_0x277f52){return function(_0x14f42e){if(_0x14f42e){return _0x14f42e[_0xa360('0x26')]()['then'](function(){_0x3ca291[_0xa360('0x1c')](0xcc)[_0xa360('0x1b')]();});}};}function handleEntityNotFound(_0x5f227,_0x56f6d2){return function(_0x34194b){if(!_0x34194b){_0x5f227[_0xa360('0x1a')](0x194);}return _0x34194b;};}function handleError(_0x42d68d,_0x20c278){_0x20c278=_0x20c278||0x1f4;return function(_0x4de6c5){logger[_0xa360('0x27')](_0x4de6c5['stack']);if(_0x4de6c5[_0xa360('0x28')]){delete _0x4de6c5[_0xa360('0x28')];}_0x42d68d['status'](_0x20c278)['send'](_0x4de6c5);};}exports[_0xa360('0x29')]=function(_0x544199,_0xe50b9c){var _0x1e9885={'raw':![],'where':{'id':_0x544199[_0xa360('0x2a')]['id']}},_0x18ae5d={};_0x18ae5d[_0xa360('0x2b')]=_[_0xa360('0x2c')](db['DashboardItem']['rawAttributes']);_0x18ae5d[_0xa360('0x2d')]=_[_0xa360('0x2c')](_0x544199['query']);_0x18ae5d['filters']=_[_0xa360('0x2e')](_0x18ae5d[_0xa360('0x2b')],_0x18ae5d['query']);_0x1e9885[_0xa360('0x2f')]=_['intersection'](_0x18ae5d[_0xa360('0x2b')],qs['fields'](_0x544199['query']['fields']));_0x1e9885[_0xa360('0x2f')]=_0x1e9885[_0xa360('0x2f')][_0xa360('0x30')]?_0x1e9885[_0xa360('0x2f')]:_0x18ae5d[_0xa360('0x2b')];if(_0x544199[_0xa360('0x2d')]['includeAll']){_0x1e9885[_0xa360('0x31')]=[{'all':!![]}];}_0x1e9885=_[_0xa360('0x32')]({},_0x1e9885,_0x544199['options']);return db[_0xa360('0x33')]['find'](_0x1e9885)['then'](handleEntityNotFound(_0xe50b9c,null))[_0xa360('0x34')](respondWithResult(_0xe50b9c,null))['catch'](handleError(_0xe50b9c,null));};exports[_0xa360('0x26')]=function(_0x22f557,_0x296bca){return db[_0xa360('0x33')][_0xa360('0x35')]({'where':{'id':_0x22f557[_0xa360('0x2a')]['id']}})['then'](handleEntityNotFound(_0x296bca,null))['then'](removeEntity(_0x296bca,null))[_0xa360('0x36')](handleError(_0x296bca,null));};function widgetAttributes(_0x8d6a49){try{switch(_0x8d6a49[_0xa360('0x37')]){case _0xa360('0x38'):return[{'name':_0xa360('0x39'),'value':_0x8d6a49['attrUrl']||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||_0xa360('0x3c')}];case _0xa360('0x3d'):return[{'name':'attrPath','value':_0x8d6a49[_0xa360('0x3e')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||''}];case'clock':return[{'name':_0xa360('0x3f'),'value':_0x8d6a49[_0xa360('0x3f')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||_0xa360('0x40')},{'name':_0xa360('0x41'),'value':_0x8d6a49[_0xa360('0x41')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x1]?_0x8d6a49[_0xa360('0x3a')][0x1][_0xa360('0x3b')]:undefined)||_0xa360('0x42')},{'name':_0xa360('0x43'),'value':_0x8d6a49['attrFontSize']||(_0x8d6a49['attrs']&&_0x8d6a49[_0xa360('0x3a')][0x2]?_0x8d6a49[_0xa360('0x3a')][0x2][_0xa360('0x3b')]:undefined)||0xc}];case _0xa360('0x44'):return[{'name':_0xa360('0x45'),'value':_0x8d6a49[_0xa360('0x45')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||'total'},{'name':_0xa360('0x46'),'value':_0x8d6a49[_0xa360('0x46')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49['attrs'][0x1]?_0x8d6a49[_0xa360('0x3a')][0x1][_0xa360('0x3b')]:undefined)||[]},{'name':_0xa360('0x43'),'value':_0x8d6a49[_0xa360('0x43')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x2]?_0x8d6a49[_0xa360('0x3a')][0x2][_0xa360('0x3b')]:undefined)||0x14}];case _0xa360('0x47'):case'pie-chart':return[{'name':_0xa360('0x48'),'value':_0x8d6a49[_0xa360('0x48')]||(_0x8d6a49['attrs']&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||_0xa360('0x49')},{'name':_0xa360('0x4a'),'value':_0x8d6a49['attrSerie2']||(_0x8d6a49['attrs']&&_0x8d6a49[_0xa360('0x3a')][0x1]?_0x8d6a49[_0xa360('0x3a')][0x1]['value']:undefined)||null},{'name':_0xa360('0x4b'),'value':_0x8d6a49[_0xa360('0x4b')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x2]?_0x8d6a49[_0xa360('0x3a')][0x2][_0xa360('0x3b')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x8d6a49[_0xa360('0x46')]||(_0x8d6a49['attrs']&&_0x8d6a49[_0xa360('0x3a')][0x3]?_0x8d6a49[_0xa360('0x3a')][0x3]['value']:undefined)||[]}];case _0xa360('0x4c'):return[{'name':_0xa360('0x4d'),'type':_0x8d6a49[_0xa360('0x4e')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0]['type']:undefined)||null,'value':_0x8d6a49[_0xa360('0x4d')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49[_0xa360('0x3a')][0x0]?_0x8d6a49[_0xa360('0x3a')][0x0][_0xa360('0x3b')]:undefined)||null},{'name':_0xa360('0x4f'),'value':_0x8d6a49[_0xa360('0x4f')]||(_0x8d6a49[_0xa360('0x3a')]&&_0x8d6a49['attrs'][0x1]?_0x8d6a49[_0xa360('0x3a')][0x1][_0xa360('0x3b')]:undefined)||0x0}];default:return[];}}catch(_0x238416){logger['error']('widgetAttributes:\x20%s',JSON[_0xa360('0x50')](_0x238416));return[];}}exports[_0xa360('0x51')]=function(_0x2b8f3a,_0x2f68f6){if(_0x2b8f3a[_0xa360('0x52')]){_0x2b8f3a[_0xa360('0x52')]['attrs']=widgetAttributes(_0x2b8f3a[_0xa360('0x52')]);}return db[_0xa360('0x33')][_0xa360('0x51')](_0x2b8f3a[_0xa360('0x52')],{})['then'](respondWithResult(_0x2f68f6,0xc9))[_0xa360('0x36')](handleError(_0x2f68f6,null));};exports[_0xa360('0x53')]=function(_0x4642bb,_0x3dc8dd){if(_0x4642bb[_0xa360('0x52')]['id']){delete _0x4642bb['body']['id'];}_0x4642bb['body'][_0xa360('0x3a')]=widgetAttributes(_0x4642bb['body']);return db[_0xa360('0x33')][_0xa360('0x35')]({'where':{'id':_0x4642bb[_0xa360('0x2a')]['id']}})[_0xa360('0x34')](handleEntityNotFound(_0x3dc8dd,null))[_0xa360('0x34')](saveUpdates(_0x4642bb[_0xa360('0x52')],null))[_0xa360('0x34')](respondWithResult(_0x3dc8dd,null))[_0xa360('0x36')](handleError(_0x3dc8dd,null));};