bb28970e931992b462f544099da87298b35e9887
[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 _0x482d=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','send','show','params','keys','DashboardItem','rawAttributes','filters','intersection','model','query','attributes','includeAll','include','merge','options','catch','find','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','reportType','attrReport','attrRefresh','stringify','body','create','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','jsforce','desk.js'];(function(_0x39b9b8,_0xf786f2){var _0x353919=function(_0x52c562){while(--_0x52c562){_0x39b9b8['push'](_0x39b9b8['shift']());}};_0x353919(++_0xf786f2);}(_0x482d,0x16c));var _0xd482=function(_0x21d7b9,_0x427c45){_0x21d7b9=_0x21d7b9-0x0;var _0x16eae9=_0x482d[_0x21d7b9];return _0x16eae9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xd482('0x0'));var jsonpatch=require(_0xd482('0x1'));var rp=require(_0xd482('0x2'));var moment=require(_0xd482('0x3'));var BPromise=require(_0xd482('0x4'));var Mustache=require(_0xd482('0x5'));var util=require('util');var path=require(_0xd482('0x6'));var sox=require(_0xd482('0x7'));var csv=require(_0xd482('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd482('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xd482('0xa'));var deskjs=require(_0xd482('0xb'));var toCsv=require(_0xd482('0x8'));var querystring=require('querystring');var Papa=require(_0xd482('0xc'));var Redis=require(_0xd482('0xd'));var authService=require(_0xd482('0xe'));var qs=require(_0xd482('0xf'));var as=require(_0xd482('0x10'));var hardwareService=require(_0xd482('0x11'));var logger=require(_0xd482('0x12'))(_0xd482('0x13'));var utils=require('../../config/utils');var config=require(_0xd482('0x14'));var licenseUtil=require(_0xd482('0x15'));var db=require(_0xd482('0x16'))['db'];config[_0xd482('0x17')]=_['defaults'](config[_0xd482('0x17')],{'host':_0xd482('0x18'),'port':0x18eb});var socket=require(_0xd482('0x19'))(new Redis(config['redis']));require(_0xd482('0x1a'))['register'](socket);function respondWithStatusCode(_0x5c5eaa,_0x2aa7f4){_0x2aa7f4=_0x2aa7f4||0xcc;return function(_0x5420dc){if(_0x5420dc){return _0x5c5eaa[_0xd482('0x1b')](_0x2aa7f4);}return _0x5c5eaa[_0xd482('0x1c')](_0x2aa7f4)['end']();};}function respondWithResult(_0x3f4c2f,_0x138422){_0x138422=_0x138422||0xc8;return function(_0x319c97){if(_0x319c97){return _0x3f4c2f[_0xd482('0x1c')](_0x138422)[_0xd482('0x1d')](_0x319c97);}};}function respondWithFilteredResult(_0x499dbc,_0x3d48c3){return function(_0x1816b7){if(_0x1816b7){var _0x3914b8=typeof _0x3d48c3['offset']===_0xd482('0x1e')&&typeof _0x3d48c3[_0xd482('0x1f')]===_0xd482('0x1e');var _0x155c35=_0x1816b7[_0xd482('0x20')];var _0x545b11=_0x3914b8?0x0:_0x3d48c3['offset'];var _0x4e3abc=_0x3914b8?_0x1816b7[_0xd482('0x20')]:_0x3d48c3[_0xd482('0x21')]+_0x3d48c3[_0xd482('0x1f')];var _0x5510cd;if(_0x4e3abc>=_0x155c35){_0x4e3abc=_0x155c35;_0x5510cd=0xc8;}else{_0x5510cd=0xce;}_0x499dbc[_0xd482('0x1c')](_0x5510cd);return _0x499dbc[_0xd482('0x22')](_0xd482('0x23'),_0x545b11+'-'+_0x4e3abc+'/'+_0x155c35)[_0xd482('0x1d')](_0x1816b7);}return null;};}function patchUpdates(_0x76b6ea){return function(_0x441525){try{jsonpatch[_0xd482('0x24')](_0x441525,_0x76b6ea,!![]);}catch(_0x305251){return BPromise['reject'](_0x305251);}return _0x441525[_0xd482('0x25')]();};}function saveUpdates(_0x34c646,_0x3adcb5){return function(_0xc3fb6e){if(_0xc3fb6e){return _0xc3fb6e[_0xd482('0x26')](_0x34c646)[_0xd482('0x27')](function(_0x1e68c2){return _0x1e68c2;});}return null;};}function removeEntity(_0x1545d8,_0x5075b7){return function(_0x4d9351){if(_0x4d9351){return _0x4d9351[_0xd482('0x28')]()['then'](function(){_0x1545d8[_0xd482('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47ce2d,_0x5e4bed){return function(_0x11ca6d){if(!_0x11ca6d){_0x47ce2d[_0xd482('0x1b')](0x194);}return _0x11ca6d;};}function handleError(_0x400cbc,_0x120906){_0x120906=_0x120906||0x1f4;return function(_0x3654fa){logger[_0xd482('0x29')](_0x3654fa[_0xd482('0x2a')]);if(_0x3654fa['name']){delete _0x3654fa['name'];}_0x400cbc[_0xd482('0x1c')](_0x120906)[_0xd482('0x2b')](_0x3654fa);};}exports[_0xd482('0x2c')]=function(_0x51d858,_0x5905c8){var _0x43f952={'raw':![],'where':{'id':_0x51d858[_0xd482('0x2d')]['id']}},_0x39f753={};_0x39f753['model']=_[_0xd482('0x2e')](db[_0xd482('0x2f')][_0xd482('0x30')]);_0x39f753['query']=_[_0xd482('0x2e')](_0x51d858['query']);_0x39f753[_0xd482('0x31')]=_[_0xd482('0x32')](_0x39f753[_0xd482('0x33')],_0x39f753[_0xd482('0x34')]);_0x43f952['attributes']=_[_0xd482('0x32')](_0x39f753[_0xd482('0x33')],qs['fields'](_0x51d858[_0xd482('0x34')]['fields']));_0x43f952[_0xd482('0x35')]=_0x43f952['attributes']['length']?_0x43f952['attributes']:_0x39f753[_0xd482('0x33')];if(_0x51d858['query'][_0xd482('0x36')]){_0x43f952[_0xd482('0x37')]=[{'all':!![]}];}_0x43f952=_[_0xd482('0x38')]({},_0x43f952,_0x51d858[_0xd482('0x39')]);return db[_0xd482('0x2f')]['find'](_0x43f952)[_0xd482('0x27')](handleEntityNotFound(_0x5905c8,null))[_0xd482('0x27')](respondWithResult(_0x5905c8,null))[_0xd482('0x3a')](handleError(_0x5905c8,null));};exports[_0xd482('0x28')]=function(_0x1ce476,_0x2566a9){return db[_0xd482('0x2f')][_0xd482('0x3b')]({'where':{'id':_0x1ce476['params']['id']}})['then'](handleEntityNotFound(_0x2566a9,null))[_0xd482('0x27')](removeEntity(_0x2566a9,null))[_0xd482('0x3a')](handleError(_0x2566a9,null));};function widgetAttributes(_0x3d4440){try{switch(_0x3d4440['type']){case'iframe':return[{'name':_0xd482('0x3c'),'value':_0x3d4440[_0xd482('0x3c')]||(_0x3d4440['attrs']&&_0x3d4440['attrs'][0x0]?_0x3d4440[_0xd482('0x3d')][0x0][_0xd482('0x3e')]:undefined)||_0xd482('0x3f')}];case _0xd482('0x40'):return[{'name':_0xd482('0x41'),'value':_0x3d4440[_0xd482('0x41')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x0]?_0x3d4440[_0xd482('0x3d')][0x0][_0xd482('0x3e')]:undefined)||''}];case _0xd482('0x42'):return[{'name':_0xd482('0x43'),'value':_0x3d4440['attrHourFormat']||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x0]?_0x3d4440[_0xd482('0x3d')][0x0][_0xd482('0x3e')]:undefined)||_0xd482('0x44')},{'name':_0xd482('0x45'),'value':_0x3d4440['attrTimezone']||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x1]?_0x3d4440['attrs'][0x1][_0xd482('0x3e')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x3d4440[_0xd482('0x46')]||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0x2]?_0x3d4440[_0xd482('0x3d')][0x2][_0xd482('0x3e')]:undefined)||0xc}];case _0xd482('0x47'):return[{'name':'attrMetric','value':_0x3d4440[_0xd482('0x48')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x0]?_0x3d4440[_0xd482('0x3d')][0x0]['value']:undefined)||_0xd482('0x49')},{'name':_0xd482('0x4a'),'value':_0x3d4440['attrVoiceQueues']||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0x1]?_0x3d4440[_0xd482('0x3d')][0x1][_0xd482('0x3e')]:undefined)||[]},{'name':_0xd482('0x46'),'value':_0x3d4440['attrFontSize']||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x2]?_0x3d4440['attrs'][0x2][_0xd482('0x3e')]:undefined)||0x14},{'name':_0xd482('0x4b'),'value':_0x3d4440[_0xd482('0x4b')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x3]?_0x3d4440[_0xd482('0x3d')][0x3][_0xd482('0x3e')]:undefined)||_0xd482('0x4c')},{'name':_0xd482('0x4d'),'value':_0x3d4440[_0xd482('0x4d')]||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0x4]?_0x3d4440[_0xd482('0x3d')][0x4][_0xd482('0x3e')]:undefined)||''},{'name':_0xd482('0x4e'),'value':_0x3d4440[_0xd482('0x4e')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x5]?_0x3d4440[_0xd482('0x3d')][0x5][_0xd482('0x3e')]:undefined)||''},{'name':_0xd482('0x4f'),'value':_0x3d4440['attrSmsAccounts']||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x6]?_0x3d4440['attrs'][0x6][_0xd482('0x3e')]:undefined)||''},{'name':_0xd482('0x50'),'value':_0x3d4440['attrOpenchannelAccounts']||(_0x3d4440['attrs']&&_0x3d4440['attrs'][0x7]?_0x3d4440[_0xd482('0x3d')][0x7]['value']:undefined)||''},{'name':_0xd482('0x51'),'value':_0x3d4440[_0xd482('0x51')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x8]?_0x3d4440['attrs'][0x8][_0xd482('0x3e')]:undefined)||''},{'name':_0xd482('0x52'),'value':_0x3d4440[_0xd482('0x52')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x9]?_0x3d4440['attrs'][0x9][_0xd482('0x3e')]:undefined)||''}];case _0xd482('0x53'):case _0xd482('0x54'):return[{'name':_0xd482('0x55'),'value':_0x3d4440[_0xd482('0x55')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x0]?_0x3d4440[_0xd482('0x3d')][0x0][_0xd482('0x3e')]:undefined)||'total'},{'name':_0xd482('0x56'),'value':_0x3d4440['attrSerie2']||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x1]?_0x3d4440[_0xd482('0x3d')][0x1]['value']:undefined)||null},{'name':_0xd482('0x57'),'value':_0x3d4440[_0xd482('0x57')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x2]?_0x3d4440['attrs'][0x2][_0xd482('0x3e')]:undefined)||null},{'name':_0xd482('0x4a'),'value':_0x3d4440[_0xd482('0x4a')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x3]?_0x3d4440[_0xd482('0x3d')][0x3][_0xd482('0x3e')]:undefined)||[]},{'name':_0xd482('0x4b'),'value':_0x3d4440['attrChannel']||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0x4]?_0x3d4440['attrs'][0x4][_0xd482('0x3e')]:undefined)||_0xd482('0x4c')},{'name':_0xd482('0x4d'),'value':_0x3d4440[_0xd482('0x4d')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x5]?_0x3d4440[_0xd482('0x3d')][0x5][_0xd482('0x3e')]:undefined)||''},{'name':_0xd482('0x4e'),'value':_0x3d4440[_0xd482('0x4e')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x6]?_0x3d4440[_0xd482('0x3d')][0x6]['value']:undefined)||''},{'name':_0xd482('0x4f'),'value':_0x3d4440[_0xd482('0x4f')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x7]?_0x3d4440[_0xd482('0x3d')][0x7]['value']:undefined)||''},{'name':_0xd482('0x50'),'value':_0x3d4440[_0xd482('0x50')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x8]?_0x3d4440[_0xd482('0x3d')][0x8][_0xd482('0x3e')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x3d4440[_0xd482('0x51')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x9]?_0x3d4440[_0xd482('0x3d')][0x9]['value']:undefined)||''},{'name':_0xd482('0x52'),'value':_0x3d4440[_0xd482('0x52')]||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0xa]?_0x3d4440[_0xd482('0x3d')][0xa][_0xd482('0x3e')]:undefined)||''}];case'web-report':return[{'name':'attrReport','type':_0x3d4440[_0xd482('0x58')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440[_0xd482('0x3d')][0x0]?_0x3d4440[_0xd482('0x3d')][0x0]['type']:undefined)||null,'value':_0x3d4440[_0xd482('0x59')]||(_0x3d4440[_0xd482('0x3d')]&&_0x3d4440['attrs'][0x0]?_0x3d4440[_0xd482('0x3d')][0x0][_0xd482('0x3e')]:undefined)||null},{'name':_0xd482('0x5a'),'value':_0x3d4440[_0xd482('0x5a')]||(_0x3d4440['attrs']&&_0x3d4440[_0xd482('0x3d')][0x1]?_0x3d4440['attrs'][0x1][_0xd482('0x3e')]:undefined)||0x0}];default:return[];}}catch(_0x923da0){logger[_0xd482('0x29')]('widgetAttributes:\x20%s',JSON[_0xd482('0x5b')](_0x923da0));return[];}}exports['create']=function(_0x22947c,_0xc7e326){if(_0x22947c[_0xd482('0x5c')]){_0x22947c[_0xd482('0x5c')]['attrs']=widgetAttributes(_0x22947c[_0xd482('0x5c')]);}return db[_0xd482('0x2f')][_0xd482('0x5d')](_0x22947c[_0xd482('0x5c')],{})[_0xd482('0x27')](respondWithResult(_0xc7e326,0xc9))[_0xd482('0x3a')](handleError(_0xc7e326,null));};exports[_0xd482('0x26')]=function(_0x41653e,_0x9d08ed){if(_0x41653e[_0xd482('0x5c')]['id']){delete _0x41653e[_0xd482('0x5c')]['id'];}_0x41653e[_0xd482('0x5c')]['attrs']=widgetAttributes(_0x41653e[_0xd482('0x5c')]);return db[_0xd482('0x2f')]['find']({'where':{'id':_0x41653e[_0xd482('0x2d')]['id']}})[_0xd482('0x27')](handleEntityNotFound(_0x9d08ed,null))[_0xd482('0x27')](saveUpdates(_0x41653e[_0xd482('0x5c')],null))[_0xd482('0x27')](respondWithResult(_0x9d08ed,null))[_0xd482('0x3a')](handleError(_0x9d08ed,null));};