Built motion from commit da617fac.|2.6.6
[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 _0xbdb9=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','show','model','DashboardItem','rawAttributes','query','keys','filters','intersection','attributes','fields','length','includeAll','include','options','find','catch','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrChatWebsites','attrReport','type','attrRefresh','widgetAttributes:\x20%s','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x3f9d52,_0x481e95){var _0x46881a=function(_0x2984bc){while(--_0x2984bc){_0x3f9d52['push'](_0x3f9d52['shift']());}};_0x46881a(++_0x481e95);}(_0xbdb9,0xac));var _0x9bdb=function(_0x3795dc,_0xb01d5d){_0x3795dc=_0x3795dc-0x0;var _0x3d94eb=_0xbdb9[_0x3795dc];return _0x3d94eb;};'use strict';var emlformat=require(_0x9bdb('0x0'));var rimraf=require(_0x9bdb('0x1'));var zipdir=require(_0x9bdb('0x2'));var jsonpatch=require(_0x9bdb('0x3'));var rp=require(_0x9bdb('0x4'));var moment=require('moment');var BPromise=require(_0x9bdb('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x9bdb('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9bdb('0x7'));var _=require('lodash');var squel=require(_0x9bdb('0x8'));var crypto=require(_0x9bdb('0x9'));var jsforce=require(_0x9bdb('0xa'));var deskjs=require(_0x9bdb('0xb'));var toCsv=require(_0x9bdb('0x6'));var querystring=require(_0x9bdb('0xc'));var Papa=require(_0x9bdb('0xd'));var Redis=require('ioredis');var authService=require(_0x9bdb('0xe'));var qs=require(_0x9bdb('0xf'));var as=require(_0x9bdb('0x10'));var hardwareService=require(_0x9bdb('0x11'));var logger=require(_0x9bdb('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x9bdb('0x13'));var licenseUtil=require(_0x9bdb('0x14'));var db=require(_0x9bdb('0x15'))['db'];config[_0x9bdb('0x16')]=_[_0x9bdb('0x17')](config[_0x9bdb('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x9bdb('0x18'))(new Redis(config[_0x9bdb('0x16')]));require(_0x9bdb('0x19'))[_0x9bdb('0x1a')](socket);function respondWithStatusCode(_0x17b647,_0x4af695){_0x4af695=_0x4af695||0xcc;return function(_0x1378e0){if(_0x1378e0){return _0x17b647[_0x9bdb('0x1b')](_0x4af695);}return _0x17b647[_0x9bdb('0x1c')](_0x4af695)['end']();};}function respondWithResult(_0x3d759e,_0xfc16a4){_0xfc16a4=_0xfc16a4||0xc8;return function(_0x1cb06d){if(_0x1cb06d){return _0x3d759e[_0x9bdb('0x1c')](_0xfc16a4)[_0x9bdb('0x1d')](_0x1cb06d);}};}function respondWithFilteredResult(_0x13c07b,_0xf5ca10){return function(_0x112d0f){if(_0x112d0f){var _0x1f4e49=typeof _0xf5ca10[_0x9bdb('0x1e')]==='undefined'&&typeof _0xf5ca10[_0x9bdb('0x1f')]===_0x9bdb('0x20');var _0x5204ba=_0x112d0f[_0x9bdb('0x21')];var _0x16a953=_0x1f4e49?0x0:_0xf5ca10[_0x9bdb('0x1e')];var _0x582a46=_0x1f4e49?_0x112d0f[_0x9bdb('0x21')]:_0xf5ca10[_0x9bdb('0x1e')]+_0xf5ca10[_0x9bdb('0x1f')];var _0x4da7a5;if(_0x582a46>=_0x5204ba){_0x582a46=_0x5204ba;_0x4da7a5=0xc8;}else{_0x4da7a5=0xce;}_0x13c07b[_0x9bdb('0x1c')](_0x4da7a5);return _0x13c07b[_0x9bdb('0x22')](_0x9bdb('0x23'),_0x16a953+'-'+_0x582a46+'/'+_0x5204ba)[_0x9bdb('0x1d')](_0x112d0f);}return null;};}function patchUpdates(_0x41a213){return function(_0x310256){try{jsonpatch['apply'](_0x310256,_0x41a213,!![]);}catch(_0x5b5262){return BPromise[_0x9bdb('0x24')](_0x5b5262);}return _0x310256[_0x9bdb('0x25')]();};}function saveUpdates(_0x1bba44,_0x5b84cf){return function(_0x4062a3){if(_0x4062a3){return _0x4062a3[_0x9bdb('0x26')](_0x1bba44)[_0x9bdb('0x27')](function(_0x1725aa){return _0x1725aa;});}return null;};}function removeEntity(_0x561f9f,_0x37a02a){return function(_0x5958c0){if(_0x5958c0){return _0x5958c0[_0x9bdb('0x28')]()[_0x9bdb('0x27')](function(){_0x561f9f[_0x9bdb('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x158604,_0xab83c9){return function(_0x1f2c23){if(!_0x1f2c23){_0x158604[_0x9bdb('0x1b')](0x194);}return _0x1f2c23;};}function handleError(_0x4368c4,_0x14fb6a){_0x14fb6a=_0x14fb6a||0x1f4;return function(_0x426390){logger[_0x9bdb('0x29')](_0x426390[_0x9bdb('0x2a')]);if(_0x426390[_0x9bdb('0x2b')]){delete _0x426390['name'];}_0x4368c4[_0x9bdb('0x1c')](_0x14fb6a)[_0x9bdb('0x2c')](_0x426390);};}exports[_0x9bdb('0x2d')]=function(_0x1e2a89,_0x38e02f){var _0x264466={'raw':![],'where':{'id':_0x1e2a89['params']['id']}},_0x106160={};_0x106160[_0x9bdb('0x2e')]=_['keys'](db[_0x9bdb('0x2f')][_0x9bdb('0x30')]);_0x106160[_0x9bdb('0x31')]=_[_0x9bdb('0x32')](_0x1e2a89[_0x9bdb('0x31')]);_0x106160[_0x9bdb('0x33')]=_[_0x9bdb('0x34')](_0x106160['model'],_0x106160[_0x9bdb('0x31')]);_0x264466[_0x9bdb('0x35')]=_[_0x9bdb('0x34')](_0x106160['model'],qs['fields'](_0x1e2a89['query'][_0x9bdb('0x36')]));_0x264466['attributes']=_0x264466[_0x9bdb('0x35')][_0x9bdb('0x37')]?_0x264466[_0x9bdb('0x35')]:_0x106160[_0x9bdb('0x2e')];if(_0x1e2a89[_0x9bdb('0x31')][_0x9bdb('0x38')]){_0x264466[_0x9bdb('0x39')]=[{'all':!![]}];}_0x264466=_['merge']({},_0x264466,_0x1e2a89[_0x9bdb('0x3a')]);return db[_0x9bdb('0x2f')][_0x9bdb('0x3b')](_0x264466)[_0x9bdb('0x27')](handleEntityNotFound(_0x38e02f,null))[_0x9bdb('0x27')](respondWithResult(_0x38e02f,null))['catch'](handleError(_0x38e02f,null));};exports[_0x9bdb('0x28')]=function(_0x35e567,_0x232043){return db['DashboardItem'][_0x9bdb('0x3b')]({'where':{'id':_0x35e567['params']['id']}})[_0x9bdb('0x27')](handleEntityNotFound(_0x232043,null))[_0x9bdb('0x27')](removeEntity(_0x232043,null))[_0x9bdb('0x3c')](handleError(_0x232043,null));};function widgetAttributes(_0x4e6c37){try{switch(_0x4e6c37['type']){case'iframe':return[{'name':_0x9bdb('0x3d'),'value':_0x4e6c37[_0x9bdb('0x3d')]||(_0x4e6c37['attrs']&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37['attrs'][0x0][_0x9bdb('0x3f')]:undefined)||'https://'}];case _0x9bdb('0x40'):return[{'name':_0x9bdb('0x41'),'value':_0x4e6c37[_0x9bdb('0x41')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37[_0x9bdb('0x3e')][0x0]['value']:undefined)||''}];case _0x9bdb('0x42'):return[{'name':_0x9bdb('0x43'),'value':_0x4e6c37['attrHourFormat']||(_0x4e6c37['attrs']&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37['attrs'][0x0][_0x9bdb('0x3f')]:undefined)||_0x9bdb('0x44')},{'name':'attrTimezone','value':_0x4e6c37[_0x9bdb('0x45')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x1]?_0x4e6c37[_0x9bdb('0x3e')][0x1][_0x9bdb('0x3f')]:undefined)||'0.00'},{'name':_0x9bdb('0x46'),'value':_0x4e6c37['attrFontSize']||(_0x4e6c37['attrs']&&_0x4e6c37[_0x9bdb('0x3e')][0x2]?_0x4e6c37['attrs'][0x2]['value']:undefined)||0xc}];case _0x9bdb('0x47'):return[{'name':_0x9bdb('0x48'),'value':_0x4e6c37['attrMetric']||(_0x4e6c37['attrs']&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37[_0x9bdb('0x3e')][0x0][_0x9bdb('0x3f')]:undefined)||_0x9bdb('0x49')},{'name':_0x9bdb('0x4a'),'value':_0x4e6c37[_0x9bdb('0x4a')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x1]?_0x4e6c37[_0x9bdb('0x3e')][0x1]['value']:undefined)||[]},{'name':_0x9bdb('0x46'),'value':_0x4e6c37[_0x9bdb('0x46')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x2]?_0x4e6c37[_0x9bdb('0x3e')][0x2][_0x9bdb('0x3f')]:undefined)||0x14},{'name':_0x9bdb('0x4b'),'value':_0x4e6c37['attrChannel']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x3]?_0x4e6c37['attrs'][0x3][_0x9bdb('0x3f')]:undefined)||_0x9bdb('0x4c')},{'name':_0x9bdb('0x4d'),'value':_0x4e6c37['attrEmailAccounts']||(_0x4e6c37['attrs']&&_0x4e6c37['attrs'][0x4]?_0x4e6c37[_0x9bdb('0x3e')][0x4][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x4e'),'value':_0x4e6c37['attrFaxAccounts']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x5]?_0x4e6c37['attrs'][0x5]['value']:undefined)||''},{'name':_0x9bdb('0x4f'),'value':_0x4e6c37['attrSmsAccounts']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x6]?_0x4e6c37[_0x9bdb('0x3e')][0x6][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x50'),'value':_0x4e6c37[_0x9bdb('0x50')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x7]?_0x4e6c37['attrs'][0x7]['value']:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x4e6c37[_0x9bdb('0x51')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x8]?_0x4e6c37[_0x9bdb('0x3e')][0x8][_0x9bdb('0x3f')]:undefined)||''},{'name':'attrChatWebsites','value':_0x4e6c37['attrChatWebsites']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x9]?_0x4e6c37[_0x9bdb('0x3e')][0x9][_0x9bdb('0x3f')]:undefined)||''}];case _0x9bdb('0x52'):case _0x9bdb('0x53'):return[{'name':_0x9bdb('0x54'),'value':_0x4e6c37[_0x9bdb('0x54')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37['attrs'][0x0][_0x9bdb('0x3f')]:undefined)||_0x9bdb('0x49')},{'name':_0x9bdb('0x55'),'value':_0x4e6c37['attrSerie2']||(_0x4e6c37['attrs']&&_0x4e6c37['attrs'][0x1]?_0x4e6c37['attrs'][0x1][_0x9bdb('0x3f')]:undefined)||null},{'name':'attrSerie3','value':_0x4e6c37['attrSerie3']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x2]?_0x4e6c37[_0x9bdb('0x3e')][0x2][_0x9bdb('0x3f')]:undefined)||null},{'name':_0x9bdb('0x4a'),'value':_0x4e6c37[_0x9bdb('0x4a')]||(_0x4e6c37['attrs']&&_0x4e6c37['attrs'][0x3]?_0x4e6c37[_0x9bdb('0x3e')][0x3]['value']:undefined)||[]},{'name':_0x9bdb('0x4b'),'value':_0x4e6c37['attrChannel']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x4]?_0x4e6c37[_0x9bdb('0x3e')][0x4]['value']:undefined)||'voice'},{'name':_0x9bdb('0x4d'),'value':_0x4e6c37['attrEmailAccounts']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x5]?_0x4e6c37[_0x9bdb('0x3e')][0x5][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x4e'),'value':_0x4e6c37[_0x9bdb('0x4e')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x6]?_0x4e6c37[_0x9bdb('0x3e')][0x6][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x4f'),'value':_0x4e6c37[_0x9bdb('0x4f')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x7]?_0x4e6c37[_0x9bdb('0x3e')][0x7][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x50'),'value':_0x4e6c37[_0x9bdb('0x50')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x8]?_0x4e6c37[_0x9bdb('0x3e')][0x8]['value']:undefined)||''},{'name':_0x9bdb('0x51'),'value':_0x4e6c37[_0x9bdb('0x51')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x9]?_0x4e6c37[_0x9bdb('0x3e')][0x9][_0x9bdb('0x3f')]:undefined)||''},{'name':_0x9bdb('0x56'),'value':_0x4e6c37['attrChatWebsites']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0xa]?_0x4e6c37[_0x9bdb('0x3e')][0xa][_0x9bdb('0x3f')]:undefined)||''}];case'web-report':return[{'name':_0x9bdb('0x57'),'type':_0x4e6c37['reportType']||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37['attrs'][0x0]?_0x4e6c37[_0x9bdb('0x3e')][0x0][_0x9bdb('0x58')]:undefined)||null,'value':_0x4e6c37[_0x9bdb('0x57')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x0]?_0x4e6c37[_0x9bdb('0x3e')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x4e6c37[_0x9bdb('0x59')]||(_0x4e6c37[_0x9bdb('0x3e')]&&_0x4e6c37[_0x9bdb('0x3e')][0x1]?_0x4e6c37[_0x9bdb('0x3e')][0x1][_0x9bdb('0x3f')]:undefined)||0x0}];default:return[];}}catch(_0x27dd7f){logger[_0x9bdb('0x29')](_0x9bdb('0x5a'),JSON['stringify'](_0x27dd7f));return[];}}exports[_0x9bdb('0x5b')]=function(_0x452c21,_0x135b6a){if(_0x452c21[_0x9bdb('0x5c')]){_0x452c21[_0x9bdb('0x5c')][_0x9bdb('0x3e')]=widgetAttributes(_0x452c21['body']);}return db[_0x9bdb('0x2f')][_0x9bdb('0x5b')](_0x452c21[_0x9bdb('0x5c')],{})['then'](respondWithResult(_0x135b6a,0xc9))[_0x9bdb('0x3c')](handleError(_0x135b6a,null));};exports[_0x9bdb('0x26')]=function(_0x3306d7,_0x10776b){if(_0x3306d7[_0x9bdb('0x5c')]['id']){delete _0x3306d7[_0x9bdb('0x5c')]['id'];}_0x3306d7[_0x9bdb('0x5c')]['attrs']=widgetAttributes(_0x3306d7[_0x9bdb('0x5c')]);return db[_0x9bdb('0x2f')][_0x9bdb('0x3b')]({'where':{'id':_0x3306d7['params']['id']}})['then'](handleEntityNotFound(_0x10776b,null))['then'](saveUpdates(_0x3306d7[_0x9bdb('0x5c')],null))[_0x9bdb('0x27')](respondWithResult(_0x10776b,null))[_0x9bdb('0x3c')](handleError(_0x10776b,null));};