ffdc2f66a47e98fc6030b708f612150025af5b21
[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 _0x8085=['attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrEmailAccounts','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','update','eml-format','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./dashboardItem.socket','register','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','then','destroy','error','stack','send','show','params','model','keys','rawAttributes','query','intersection','attributes','fields','length','includeAll','merge','DashboardItem','catch','find','type','iframe','attrUrl','attrs','https://','attrPath','attrHourFormat','value','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts'];(function(_0x539c59,_0x520284){var _0x4fcbcf=function(_0x2263b6){while(--_0x2263b6){_0x539c59['push'](_0x539c59['shift']());}};_0x4fcbcf(++_0x520284);}(_0x8085,0x71));var _0x5808=function(_0x19159a,_0x1cb5c3){_0x19159a=_0x19159a-0x0;var _0xa677f4=_0x8085[_0x19159a];return _0xa677f4;};'use strict';var emlformat=require(_0x5808('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x5808('0x1'));var rp=require(_0x5808('0x2'));var moment=require(_0x5808('0x3'));var BPromise=require(_0x5808('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5808('0x5'));var sox=require(_0x5808('0x6'));var csv=require('to-csv');var ejs=require(_0x5808('0x7'));var fs=require('fs');var fs_extra=require(_0x5808('0x8'));var _=require(_0x5808('0x9'));var squel=require(_0x5808('0xa'));var crypto=require(_0x5808('0xb'));var jsforce=require(_0x5808('0xc'));var deskjs=require(_0x5808('0xd'));var toCsv=require(_0x5808('0xe'));var querystring=require(_0x5808('0xf'));var Papa=require(_0x5808('0x10'));var Redis=require(_0x5808('0x11'));var authService=require(_0x5808('0x12'));var qs=require(_0x5808('0x13'));var as=require(_0x5808('0x14'));var hardwareService=require(_0x5808('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x5808('0x16'));var config=require(_0x5808('0x17'));var licenseUtil=require(_0x5808('0x18'));var db=require(_0x5808('0x19'))['db'];config[_0x5808('0x1a')]=_[_0x5808('0x1b')](config[_0x5808('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5808('0x1a')]));require(_0x5808('0x1c'))[_0x5808('0x1d')](socket);function respondWithStatusCode(_0x3e7c09,_0x89198e){_0x89198e=_0x89198e||0xcc;return function(_0x37d739){if(_0x37d739){return _0x3e7c09[_0x5808('0x1e')](_0x89198e);}return _0x3e7c09[_0x5808('0x1f')](_0x89198e)[_0x5808('0x20')]();};}function respondWithResult(_0x46dd8a,_0x29785d){_0x29785d=_0x29785d||0xc8;return function(_0x478e29){if(_0x478e29){return _0x46dd8a[_0x5808('0x1f')](_0x29785d)['json'](_0x478e29);}};}function respondWithFilteredResult(_0x406e65,_0x25dc4e){return function(_0x3bf0ee){if(_0x3bf0ee){var _0x529a0d=typeof _0x25dc4e[_0x5808('0x21')]===_0x5808('0x22')&&typeof _0x25dc4e['limit']==='undefined';var _0x3c7c02=_0x3bf0ee['count'];var _0x40cfbd=_0x529a0d?0x0:_0x25dc4e[_0x5808('0x21')];var _0x480165=_0x529a0d?_0x3bf0ee[_0x5808('0x23')]:_0x25dc4e['offset']+_0x25dc4e['limit'];var _0xe82ad0;if(_0x480165>=_0x3c7c02){_0x480165=_0x3c7c02;_0xe82ad0=0xc8;}else{_0xe82ad0=0xce;}_0x406e65[_0x5808('0x1f')](_0xe82ad0);return _0x406e65[_0x5808('0x24')](_0x5808('0x25'),_0x40cfbd+'-'+_0x480165+'/'+_0x3c7c02)[_0x5808('0x26')](_0x3bf0ee);}return null;};}function patchUpdates(_0x33b583){return function(_0x1027ba){try{jsonpatch[_0x5808('0x27')](_0x1027ba,_0x33b583,!![]);}catch(_0x3a575e){return BPromise['reject'](_0x3a575e);}return _0x1027ba['save']();};}function saveUpdates(_0x130590,_0x168a67){return function(_0x5048a1){if(_0x5048a1){return _0x5048a1['update'](_0x130590)[_0x5808('0x28')](function(_0x467500){return _0x467500;});}return null;};}function removeEntity(_0x1dddbd,_0x4a4d05){return function(_0x49fc46){if(_0x49fc46){return _0x49fc46[_0x5808('0x29')]()[_0x5808('0x28')](function(){_0x1dddbd[_0x5808('0x1f')](0xcc)[_0x5808('0x20')]();});}};}function handleEntityNotFound(_0x1da724,_0x507a82){return function(_0x398744){if(!_0x398744){_0x1da724[_0x5808('0x1e')](0x194);}return _0x398744;};}function handleError(_0x8c6742,_0x2f878f){_0x2f878f=_0x2f878f||0x1f4;return function(_0x28c1eb){logger[_0x5808('0x2a')](_0x28c1eb[_0x5808('0x2b')]);if(_0x28c1eb['name']){delete _0x28c1eb['name'];}_0x8c6742[_0x5808('0x1f')](_0x2f878f)[_0x5808('0x2c')](_0x28c1eb);};}exports[_0x5808('0x2d')]=function(_0x5ad84b,_0x3faa07){var _0x3438be={'raw':![],'where':{'id':_0x5ad84b[_0x5808('0x2e')]['id']}},_0x269810={};_0x269810[_0x5808('0x2f')]=_[_0x5808('0x30')](db['DashboardItem'][_0x5808('0x31')]);_0x269810[_0x5808('0x32')]=_[_0x5808('0x30')](_0x5ad84b['query']);_0x269810['filters']=_[_0x5808('0x33')](_0x269810['model'],_0x269810[_0x5808('0x32')]);_0x3438be[_0x5808('0x34')]=_['intersection'](_0x269810[_0x5808('0x2f')],qs[_0x5808('0x35')](_0x5ad84b['query']['fields']));_0x3438be[_0x5808('0x34')]=_0x3438be['attributes'][_0x5808('0x36')]?_0x3438be['attributes']:_0x269810[_0x5808('0x2f')];if(_0x5ad84b[_0x5808('0x32')][_0x5808('0x37')]){_0x3438be['include']=[{'all':!![]}];}_0x3438be=_[_0x5808('0x38')]({},_0x3438be,_0x5ad84b['options']);return db[_0x5808('0x39')]['find'](_0x3438be)['then'](handleEntityNotFound(_0x3faa07,null))[_0x5808('0x28')](respondWithResult(_0x3faa07,null))[_0x5808('0x3a')](handleError(_0x3faa07,null));};exports[_0x5808('0x29')]=function(_0x570234,_0x5f3dcd){return db[_0x5808('0x39')][_0x5808('0x3b')]({'where':{'id':_0x570234['params']['id']}})[_0x5808('0x28')](handleEntityNotFound(_0x5f3dcd,null))[_0x5808('0x28')](removeEntity(_0x5f3dcd,null))[_0x5808('0x3a')](handleError(_0x5f3dcd,null));};function widgetAttributes(_0x490024){try{switch(_0x490024[_0x5808('0x3c')]){case _0x5808('0x3d'):return[{'name':_0x5808('0x3e'),'value':_0x490024['attrUrl']||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x0]?_0x490024['attrs'][0x0]['value']:undefined)||_0x5808('0x40')}];case'custom':return[{'name':_0x5808('0x41'),'value':_0x490024[_0x5808('0x41')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x0]?_0x490024[_0x5808('0x3f')][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0x5808('0x42'),'value':_0x490024[_0x5808('0x42')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x0]?_0x490024[_0x5808('0x3f')][0x0][_0x5808('0x43')]:undefined)||_0x5808('0x44')},{'name':_0x5808('0x45'),'value':_0x490024[_0x5808('0x45')]||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0x1]?_0x490024[_0x5808('0x3f')][0x1][_0x5808('0x43')]:undefined)||'0.00'},{'name':_0x5808('0x46'),'value':_0x490024[_0x5808('0x46')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x2]?_0x490024['attrs'][0x2][_0x5808('0x43')]:undefined)||0xc}];case _0x5808('0x47'):return[{'name':_0x5808('0x48'),'value':_0x490024[_0x5808('0x48')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x0]?_0x490024[_0x5808('0x3f')][0x0][_0x5808('0x43')]:undefined)||_0x5808('0x49')},{'name':_0x5808('0x4a'),'value':_0x490024[_0x5808('0x4a')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x1]?_0x490024['attrs'][0x1]['value']:undefined)||[]},{'name':_0x5808('0x46'),'value':_0x490024[_0x5808('0x46')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x2]?_0x490024[_0x5808('0x3f')][0x2][_0x5808('0x43')]:undefined)||0x14},{'name':_0x5808('0x4b'),'value':_0x490024['attrChannel']||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x3]?_0x490024[_0x5808('0x3f')][0x3]['value']:undefined)||_0x5808('0x4c')},{'name':'attrEmailAccounts','value':_0x490024['attrEmailAccounts']||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0x4]?_0x490024[_0x5808('0x3f')][0x4]['value']:undefined)||''},{'name':_0x5808('0x4d'),'value':_0x490024[_0x5808('0x4d')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x5]?_0x490024[_0x5808('0x3f')][0x5]['value']:undefined)||''},{'name':_0x5808('0x4e'),'value':_0x490024[_0x5808('0x4e')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x6]?_0x490024[_0x5808('0x3f')][0x6][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x4f'),'value':_0x490024[_0x5808('0x4f')]||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0x7]?_0x490024[_0x5808('0x3f')][0x7][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x50'),'value':_0x490024[_0x5808('0x50')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x8]?_0x490024[_0x5808('0x3f')][0x8][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x51'),'value':_0x490024[_0x5808('0x51')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x9]?_0x490024[_0x5808('0x3f')][0x9][_0x5808('0x43')]:undefined)||''}];case _0x5808('0x52'):case _0x5808('0x53'):return[{'name':_0x5808('0x54'),'value':_0x490024[_0x5808('0x54')]||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0x0]?_0x490024['attrs'][0x0][_0x5808('0x43')]:undefined)||_0x5808('0x49')},{'name':'attrSerie2','value':_0x490024[_0x5808('0x55')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x1]?_0x490024['attrs'][0x1][_0x5808('0x43')]:undefined)||null},{'name':_0x5808('0x56'),'value':_0x490024['attrSerie3']||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x2]?_0x490024['attrs'][0x2]['value']:undefined)||null},{'name':_0x5808('0x4a'),'value':_0x490024['attrVoiceQueues']||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x3]?_0x490024['attrs'][0x3][_0x5808('0x43')]:undefined)||[]},{'name':_0x5808('0x4b'),'value':_0x490024[_0x5808('0x4b')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x4]?_0x490024[_0x5808('0x3f')][0x4][_0x5808('0x43')]:undefined)||_0x5808('0x4c')},{'name':_0x5808('0x57'),'value':_0x490024[_0x5808('0x57')]||(_0x490024['attrs']&&_0x490024['attrs'][0x5]?_0x490024['attrs'][0x5][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x4d'),'value':_0x490024['attrFaxAccounts']||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x6]?_0x490024[_0x5808('0x3f')][0x6][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x4e'),'value':_0x490024[_0x5808('0x4e')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x7]?_0x490024[_0x5808('0x3f')][0x7][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x4f'),'value':_0x490024[_0x5808('0x4f')]||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0x8]?_0x490024[_0x5808('0x3f')][0x8][_0x5808('0x43')]:undefined)||''},{'name':_0x5808('0x50'),'value':_0x490024[_0x5808('0x50')]||(_0x490024[_0x5808('0x3f')]&&_0x490024['attrs'][0x9]?_0x490024['attrs'][0x9]['value']:undefined)||''},{'name':_0x5808('0x51'),'value':_0x490024[_0x5808('0x51')]||(_0x490024['attrs']&&_0x490024[_0x5808('0x3f')][0xa]?_0x490024[_0x5808('0x3f')][0xa][_0x5808('0x43')]:undefined)||''}];case _0x5808('0x58'):return[{'name':_0x5808('0x59'),'type':_0x490024[_0x5808('0x5a')]||(_0x490024['attrs']&&_0x490024['attrs'][0x0]?_0x490024[_0x5808('0x3f')][0x0][_0x5808('0x3c')]:undefined)||null,'value':_0x490024[_0x5808('0x59')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x0]?_0x490024['attrs'][0x0][_0x5808('0x43')]:undefined)||null},{'name':_0x5808('0x5b'),'value':_0x490024[_0x5808('0x5b')]||(_0x490024[_0x5808('0x3f')]&&_0x490024[_0x5808('0x3f')][0x1]?_0x490024['attrs'][0x1][_0x5808('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x383d36){logger[_0x5808('0x2a')](_0x5808('0x5c'),JSON[_0x5808('0x5d')](_0x383d36));return[];}}exports[_0x5808('0x5e')]=function(_0x46cfdb,_0x192eee){if(_0x46cfdb[_0x5808('0x5f')]){_0x46cfdb[_0x5808('0x5f')][_0x5808('0x3f')]=widgetAttributes(_0x46cfdb['body']);}return db['DashboardItem'][_0x5808('0x5e')](_0x46cfdb[_0x5808('0x5f')],{})[_0x5808('0x28')](respondWithResult(_0x192eee,0xc9))['catch'](handleError(_0x192eee,null));};exports[_0x5808('0x60')]=function(_0x16f264,_0x52752b){if(_0x16f264[_0x5808('0x5f')]['id']){delete _0x16f264[_0x5808('0x5f')]['id'];}_0x16f264['body'][_0x5808('0x3f')]=widgetAttributes(_0x16f264[_0x5808('0x5f')]);return db[_0x5808('0x39')][_0x5808('0x3b')]({'where':{'id':_0x16f264['params']['id']}})['then'](handleEntityNotFound(_0x52752b,null))[_0x5808('0x28')](saveUpdates(_0x16f264[_0x5808('0x5f')],null))[_0x5808('0x28')](respondWithResult(_0x52752b,null))[_0x5808('0x3a')](handleError(_0x52752b,null));};