21f67ae1d77281c25edfe8e1776cbd37dcb04d91
[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 _0xe944=['sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','then','destroy','stack','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','length','includeAll','include','merge','find','catch','type','iframe','attrUrl','attrs','value','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','eml-format','fast-json-patch','bluebird','path'];(function(_0x35b195,_0x8893d5){var _0x2433bf=function(_0x22be07){while(--_0x22be07){_0x35b195['push'](_0x35b195['shift']());}};_0x2433bf(++_0x8893d5);}(_0xe944,0x174));var _0x4e94=function(_0x183d44,_0xf532a7){_0x183d44=_0x183d44-0x0;var _0x2cab06=_0xe944[_0x183d44];return _0x2cab06;};'use strict';var emlformat=require(_0x4e94('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4e94('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4e94('0x2'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4e94('0x3'));var sox=require(_0x4e94('0x4'));var csv=require(_0x4e94('0x5'));var ejs=require(_0x4e94('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4e94('0x7'));var squel=require(_0x4e94('0x8'));var crypto=require(_0x4e94('0x9'));var jsforce=require(_0x4e94('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x4e94('0x5'));var querystring=require('querystring');var Papa=require(_0x4e94('0xb'));var Redis=require(_0x4e94('0xc'));var authService=require(_0x4e94('0xd'));var qs=require(_0x4e94('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4e94('0xf'));var logger=require(_0x4e94('0x10'))(_0x4e94('0x11'));var utils=require(_0x4e94('0x12'));var config=require(_0x4e94('0x13'));var licenseUtil=require(_0x4e94('0x14'));var db=require(_0x4e94('0x15'))['db'];config['redis']=_['defaults'](config[_0x4e94('0x16')],{'host':_0x4e94('0x17'),'port':0x18eb});var socket=require(_0x4e94('0x18'))(new Redis(config[_0x4e94('0x16')]));require(_0x4e94('0x19'))['register'](socket);function respondWithStatusCode(_0x377212,_0x441606){_0x441606=_0x441606||0xcc;return function(_0x22d9af){if(_0x22d9af){return _0x377212[_0x4e94('0x1a')](_0x441606);}return _0x377212[_0x4e94('0x1b')](_0x441606)[_0x4e94('0x1c')]();};}function respondWithResult(_0x22b4ca,_0x31dfd1){_0x31dfd1=_0x31dfd1||0xc8;return function(_0xab0a8a){if(_0xab0a8a){return _0x22b4ca[_0x4e94('0x1b')](_0x31dfd1)[_0x4e94('0x1d')](_0xab0a8a);}};}function respondWithFilteredResult(_0x41d8dc,_0x5b4abf){return function(_0x58034c){if(_0x58034c){var _0x31b551=typeof _0x5b4abf[_0x4e94('0x1e')]===_0x4e94('0x1f')&&typeof _0x5b4abf[_0x4e94('0x20')]===_0x4e94('0x1f');var _0x4ddddf=_0x58034c[_0x4e94('0x21')];var _0x354818=_0x31b551?0x0:_0x5b4abf[_0x4e94('0x1e')];var _0x13e0fc=_0x31b551?_0x58034c['count']:_0x5b4abf[_0x4e94('0x1e')]+_0x5b4abf['limit'];var _0x2c4c7;if(_0x13e0fc>=_0x4ddddf){_0x13e0fc=_0x4ddddf;_0x2c4c7=0xc8;}else{_0x2c4c7=0xce;}_0x41d8dc[_0x4e94('0x1b')](_0x2c4c7);return _0x41d8dc['set']('Content-Range',_0x354818+'-'+_0x13e0fc+'/'+_0x4ddddf)[_0x4e94('0x1d')](_0x58034c);}return null;};}function patchUpdates(_0xe3ad9c){return function(_0x236f75){try{jsonpatch[_0x4e94('0x22')](_0x236f75,_0xe3ad9c,!![]);}catch(_0x2c93de){return BPromise[_0x4e94('0x23')](_0x2c93de);}return _0x236f75[_0x4e94('0x24')]();};}function saveUpdates(_0x1ea50b,_0x59509b){return function(_0x2f0a86){if(_0x2f0a86){return _0x2f0a86[_0x4e94('0x25')](_0x1ea50b)[_0x4e94('0x26')](function(_0x57178a){return _0x57178a;});}return null;};}function removeEntity(_0x2b9e93,_0x567cd8){return function(_0x52c7f8){if(_0x52c7f8){return _0x52c7f8[_0x4e94('0x27')]()[_0x4e94('0x26')](function(){_0x2b9e93['status'](0xcc)[_0x4e94('0x1c')]();});}};}function handleEntityNotFound(_0x2cb397,_0x2a6188){return function(_0x5cb6c6){if(!_0x5cb6c6){_0x2cb397[_0x4e94('0x1a')](0x194);}return _0x5cb6c6;};}function handleError(_0xf975a9,_0x1efe92){_0x1efe92=_0x1efe92||0x1f4;return function(_0xf6ef8e){logger['error'](_0xf6ef8e[_0x4e94('0x28')]);if(_0xf6ef8e[_0x4e94('0x29')]){delete _0xf6ef8e[_0x4e94('0x29')];}_0xf975a9[_0x4e94('0x1b')](_0x1efe92)[_0x4e94('0x2a')](_0xf6ef8e);};}exports[_0x4e94('0x2b')]=function(_0x8f070e,_0x42ea2a){var _0x42e326={'raw':![],'where':{'id':_0x8f070e[_0x4e94('0x2c')]['id']}},_0x5efd77={};_0x5efd77[_0x4e94('0x2d')]=_[_0x4e94('0x2e')](db[_0x4e94('0x2f')][_0x4e94('0x30')]);_0x5efd77[_0x4e94('0x31')]=_[_0x4e94('0x2e')](_0x8f070e['query']);_0x5efd77[_0x4e94('0x32')]=_[_0x4e94('0x33')](_0x5efd77['model'],_0x5efd77[_0x4e94('0x31')]);_0x42e326[_0x4e94('0x34')]=_[_0x4e94('0x33')](_0x5efd77['model'],qs['fields'](_0x8f070e[_0x4e94('0x31')]['fields']));_0x42e326[_0x4e94('0x34')]=_0x42e326[_0x4e94('0x34')][_0x4e94('0x35')]?_0x42e326[_0x4e94('0x34')]:_0x5efd77[_0x4e94('0x2d')];if(_0x8f070e[_0x4e94('0x31')][_0x4e94('0x36')]){_0x42e326[_0x4e94('0x37')]=[{'all':!![]}];}_0x42e326=_[_0x4e94('0x38')]({},_0x42e326,_0x8f070e['options']);return db[_0x4e94('0x2f')][_0x4e94('0x39')](_0x42e326)[_0x4e94('0x26')](handleEntityNotFound(_0x42ea2a,null))['then'](respondWithResult(_0x42ea2a,null))[_0x4e94('0x3a')](handleError(_0x42ea2a,null));};exports[_0x4e94('0x27')]=function(_0x3bb5ad,_0x158261){return db[_0x4e94('0x2f')][_0x4e94('0x39')]({'where':{'id':_0x3bb5ad[_0x4e94('0x2c')]['id']}})[_0x4e94('0x26')](handleEntityNotFound(_0x158261,null))[_0x4e94('0x26')](removeEntity(_0x158261,null))[_0x4e94('0x3a')](handleError(_0x158261,null));};function widgetAttributes(_0x406b24){try{switch(_0x406b24[_0x4e94('0x3b')]){case _0x4e94('0x3c'):return[{'name':_0x4e94('0x3d'),'value':_0x406b24['attrUrl']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24['attrs'][0x0][_0x4e94('0x3f')]:undefined)||'https://'}];case'custom':return[{'name':_0x4e94('0x40'),'value':_0x406b24['attrPath']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24[_0x4e94('0x3e')][0x0][_0x4e94('0x3f')]:undefined)||''}];case'clock':return[{'name':_0x4e94('0x41'),'value':_0x406b24[_0x4e94('0x41')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24['attrs'][0x0][_0x4e94('0x3f')]:undefined)||_0x4e94('0x42')},{'name':_0x4e94('0x43'),'value':_0x406b24[_0x4e94('0x43')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x1]?_0x406b24['attrs'][0x1][_0x4e94('0x3f')]:undefined)||_0x4e94('0x44')},{'name':_0x4e94('0x45'),'value':_0x406b24['attrFontSize']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x2]?_0x406b24['attrs'][0x2][_0x4e94('0x3f')]:undefined)||0xc}];case _0x4e94('0x46'):return[{'name':_0x4e94('0x47'),'value':_0x406b24['attrMetric']||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24[_0x4e94('0x3e')][0x0][_0x4e94('0x3f')]:undefined)||'total'},{'name':_0x4e94('0x48'),'value':_0x406b24[_0x4e94('0x48')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x1]?_0x406b24[_0x4e94('0x3e')][0x1][_0x4e94('0x3f')]:undefined)||[]},{'name':'attrFontSize','value':_0x406b24[_0x4e94('0x45')]||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x2]?_0x406b24[_0x4e94('0x3e')][0x2]['value']:undefined)||0x14},{'name':_0x4e94('0x49'),'value':_0x406b24['attrChannel']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24['attrs'][0x3]?_0x406b24[_0x4e94('0x3e')][0x3][_0x4e94('0x3f')]:undefined)||_0x4e94('0x4a')},{'name':_0x4e94('0x4b'),'value':_0x406b24['attrEmailAccounts']||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x4]?_0x406b24[_0x4e94('0x3e')][0x4][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4c'),'value':_0x406b24[_0x4e94('0x4c')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x5]?_0x406b24[_0x4e94('0x3e')][0x5]['value']:undefined)||''},{'name':'attrSmsAccounts','value':_0x406b24[_0x4e94('0x4d')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x6]?_0x406b24[_0x4e94('0x3e')][0x6]['value']:undefined)||''},{'name':_0x4e94('0x4e'),'value':_0x406b24[_0x4e94('0x4e')]||(_0x406b24['attrs']&&_0x406b24['attrs'][0x7]?_0x406b24[_0x4e94('0x3e')][0x7][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4f'),'value':_0x406b24['attrWhatsappAccounts']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x8]?_0x406b24['attrs'][0x8][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x50'),'value':_0x406b24[_0x4e94('0x50')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24['attrs'][0x9]?_0x406b24[_0x4e94('0x3e')][0x9]['value']:undefined)||''}];case _0x4e94('0x51'):case _0x4e94('0x52'):return[{'name':_0x4e94('0x53'),'value':_0x406b24[_0x4e94('0x53')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24['attrs'][0x0]?_0x406b24[_0x4e94('0x3e')][0x0]['value']:undefined)||_0x4e94('0x54')},{'name':_0x4e94('0x55'),'value':_0x406b24['attrSerie2']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x1]?_0x406b24[_0x4e94('0x3e')][0x1][_0x4e94('0x3f')]:undefined)||null},{'name':'attrSerie3','value':_0x406b24[_0x4e94('0x56')]||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x2]?_0x406b24[_0x4e94('0x3e')][0x2][_0x4e94('0x3f')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x406b24['attrVoiceQueues']||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x3]?_0x406b24[_0x4e94('0x3e')][0x3][_0x4e94('0x3f')]:undefined)||[]},{'name':_0x4e94('0x49'),'value':_0x406b24[_0x4e94('0x49')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x4]?_0x406b24['attrs'][0x4][_0x4e94('0x3f')]:undefined)||_0x4e94('0x4a')},{'name':_0x4e94('0x4b'),'value':_0x406b24[_0x4e94('0x4b')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x5]?_0x406b24[_0x4e94('0x3e')][0x5][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4c'),'value':_0x406b24[_0x4e94('0x4c')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x6]?_0x406b24[_0x4e94('0x3e')][0x6][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4d'),'value':_0x406b24[_0x4e94('0x4d')]||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x7]?_0x406b24[_0x4e94('0x3e')][0x7][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4e'),'value':_0x406b24[_0x4e94('0x4e')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x8]?_0x406b24['attrs'][0x8][_0x4e94('0x3f')]:undefined)||''},{'name':_0x4e94('0x4f'),'value':_0x406b24[_0x4e94('0x4f')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x9]?_0x406b24[_0x4e94('0x3e')][0x9][_0x4e94('0x3f')]:undefined)||''},{'name':'attrChatWebsites','value':_0x406b24['attrChatWebsites']||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0xa]?_0x406b24['attrs'][0xa][_0x4e94('0x3f')]:undefined)||''}];case'web-report':return[{'name':_0x4e94('0x57'),'type':_0x406b24[_0x4e94('0x58')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24['attrs'][0x0][_0x4e94('0x3b')]:undefined)||null,'value':_0x406b24[_0x4e94('0x57')]||(_0x406b24[_0x4e94('0x3e')]&&_0x406b24[_0x4e94('0x3e')][0x0]?_0x406b24[_0x4e94('0x3e')][0x0][_0x4e94('0x3f')]:undefined)||null},{'name':'attrRefresh','value':_0x406b24[_0x4e94('0x59')]||(_0x406b24['attrs']&&_0x406b24[_0x4e94('0x3e')][0x1]?_0x406b24[_0x4e94('0x3e')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x23cb2f){logger['error'](_0x4e94('0x5a'),JSON[_0x4e94('0x5b')](_0x23cb2f));return[];}}exports['create']=function(_0x520f1a,_0x4fc9c8){if(_0x520f1a[_0x4e94('0x5c')]){_0x520f1a[_0x4e94('0x5c')][_0x4e94('0x3e')]=widgetAttributes(_0x520f1a[_0x4e94('0x5c')]);}return db[_0x4e94('0x2f')][_0x4e94('0x5d')](_0x520f1a['body'],{})[_0x4e94('0x26')](respondWithResult(_0x4fc9c8,0xc9))[_0x4e94('0x3a')](handleError(_0x4fc9c8,null));};exports[_0x4e94('0x25')]=function(_0x4846d4,_0x281449){if(_0x4846d4['body']['id']){delete _0x4846d4[_0x4e94('0x5c')]['id'];}_0x4846d4[_0x4e94('0x5c')][_0x4e94('0x3e')]=widgetAttributes(_0x4846d4[_0x4e94('0x5c')]);return db[_0x4e94('0x2f')][_0x4e94('0x39')]({'where':{'id':_0x4846d4[_0x4e94('0x2c')]['id']}})[_0x4e94('0x26')](handleEntityNotFound(_0x281449,null))['then'](saveUpdates(_0x4846d4['body'],null))['then'](respondWithResult(_0x281449,null))['catch'](handleError(_0x281449,null));};