811f8d48f24356db6c07e1c85258d1e47db5d962
[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 _0x176c=['request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','show','params','DashboardItem','rawAttributes','query','filters','intersection','model','attributes','fields','length','include','merge','options','find','catch','type','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x58f9a8,_0x46cc13){var _0x551362=function(_0x4af943){while(--_0x4af943){_0x58f9a8['push'](_0x58f9a8['shift']());}};_0x551362(++_0x46cc13);}(_0x176c,0x134));var _0xc176=function(_0x23548c,_0x39c48e){_0x23548c=_0x23548c-0x0;var _0x60116e=_0x176c[_0x23548c];return _0x60116e;};'use strict';var emlformat=require(_0xc176('0x0'));var rimraf=require(_0xc176('0x1'));var zipdir=require(_0xc176('0x2'));var jsonpatch=require(_0xc176('0x3'));var rp=require(_0xc176('0x4'));var moment=require(_0xc176('0x5'));var BPromise=require(_0xc176('0x6'));var Mustache=require('mustache');var util=require(_0xc176('0x7'));var path=require(_0xc176('0x8'));var sox=require('sox');var csv=require(_0xc176('0x9'));var ejs=require(_0xc176('0xa'));var fs=require('fs');var fs_extra=require(_0xc176('0xb'));var _=require('lodash');var squel=require(_0xc176('0xc'));var crypto=require(_0xc176('0xd'));var jsforce=require(_0xc176('0xe'));var deskjs=require(_0xc176('0xf'));var toCsv=require(_0xc176('0x9'));var querystring=require('querystring');var Papa=require(_0xc176('0x10'));var Redis=require(_0xc176('0x11'));var authService=require(_0xc176('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xc176('0x13'));var hardwareService=require(_0xc176('0x14'));var logger=require(_0xc176('0x15'))(_0xc176('0x16'));var utils=require(_0xc176('0x17'));var config=require(_0xc176('0x18'));var licenseUtil=require(_0xc176('0x19'));var db=require(_0xc176('0x1a'))['db'];config['redis']=_[_0xc176('0x1b')](config[_0xc176('0x1c')],{'host':_0xc176('0x1d'),'port':0x18eb});var socket=require(_0xc176('0x1e'))(new Redis(config[_0xc176('0x1c')]));require('./dashboardItem.socket')[_0xc176('0x1f')](socket);function respondWithStatusCode(_0x3ba62e,_0x27ded2){_0x27ded2=_0x27ded2||0xcc;return function(_0x4b8af0){if(_0x4b8af0){return _0x3ba62e[_0xc176('0x20')](_0x27ded2);}return _0x3ba62e['status'](_0x27ded2)[_0xc176('0x21')]();};}function respondWithResult(_0x246e9f,_0x4fdbd5){_0x4fdbd5=_0x4fdbd5||0xc8;return function(_0xfc47b4){if(_0xfc47b4){return _0x246e9f[_0xc176('0x22')](_0x4fdbd5)[_0xc176('0x23')](_0xfc47b4);}};}function respondWithFilteredResult(_0x1b9b5b,_0x33b528){return function(_0x284bb8){if(_0x284bb8){var _0x5e081a=typeof _0x33b528[_0xc176('0x24')]==='undefined'&&typeof _0x33b528[_0xc176('0x25')]===_0xc176('0x26');var _0x1c40bf=_0x284bb8[_0xc176('0x27')];var _0x261680=_0x5e081a?0x0:_0x33b528[_0xc176('0x24')];var _0x5526da=_0x5e081a?_0x284bb8['count']:_0x33b528[_0xc176('0x24')]+_0x33b528['limit'];var _0x179994;if(_0x5526da>=_0x1c40bf){_0x5526da=_0x1c40bf;_0x179994=0xc8;}else{_0x179994=0xce;}_0x1b9b5b['status'](_0x179994);return _0x1b9b5b[_0xc176('0x28')](_0xc176('0x29'),_0x261680+'-'+_0x5526da+'/'+_0x1c40bf)[_0xc176('0x23')](_0x284bb8);}return null;};}function patchUpdates(_0x580149){return function(_0x583c16){try{jsonpatch[_0xc176('0x2a')](_0x583c16,_0x580149,!![]);}catch(_0xdb4e6f){return BPromise[_0xc176('0x2b')](_0xdb4e6f);}return _0x583c16[_0xc176('0x2c')]();};}function saveUpdates(_0x5670da,_0x2e264d){return function(_0x5b71e6){if(_0x5b71e6){return _0x5b71e6[_0xc176('0x2d')](_0x5670da)['then'](function(_0x5049f8){return _0x5049f8;});}return null;};}function removeEntity(_0x39ee9b,_0x12ab18){return function(_0x3e4ecb){if(_0x3e4ecb){return _0x3e4ecb[_0xc176('0x2e')]()[_0xc176('0x2f')](function(){_0x39ee9b[_0xc176('0x22')](0xcc)[_0xc176('0x21')]();});}};}function handleEntityNotFound(_0x3d9fbf,_0x2cbdfa){return function(_0x3f5509){if(!_0x3f5509){_0x3d9fbf[_0xc176('0x20')](0x194);}return _0x3f5509;};}function handleError(_0x93f53c,_0x4628ad){_0x4628ad=_0x4628ad||0x1f4;return function(_0x449d76){logger[_0xc176('0x30')](_0x449d76[_0xc176('0x31')]);if(_0x449d76[_0xc176('0x32')]){delete _0x449d76['name'];}_0x93f53c['status'](_0x4628ad)[_0xc176('0x33')](_0x449d76);};}exports[_0xc176('0x34')]=function(_0x56a1bd,_0x17e111){var _0x3c7c1b={'raw':![],'where':{'id':_0x56a1bd[_0xc176('0x35')]['id']}},_0x2034fe={};_0x2034fe['model']=_['keys'](db[_0xc176('0x36')][_0xc176('0x37')]);_0x2034fe[_0xc176('0x38')]=_['keys'](_0x56a1bd[_0xc176('0x38')]);_0x2034fe[_0xc176('0x39')]=_[_0xc176('0x3a')](_0x2034fe[_0xc176('0x3b')],_0x2034fe[_0xc176('0x38')]);_0x3c7c1b[_0xc176('0x3c')]=_[_0xc176('0x3a')](_0x2034fe[_0xc176('0x3b')],qs['fields'](_0x56a1bd['query'][_0xc176('0x3d')]));_0x3c7c1b[_0xc176('0x3c')]=_0x3c7c1b[_0xc176('0x3c')][_0xc176('0x3e')]?_0x3c7c1b[_0xc176('0x3c')]:_0x2034fe[_0xc176('0x3b')];if(_0x56a1bd[_0xc176('0x38')]['includeAll']){_0x3c7c1b[_0xc176('0x3f')]=[{'all':!![]}];}_0x3c7c1b=_[_0xc176('0x40')]({},_0x3c7c1b,_0x56a1bd[_0xc176('0x41')]);return db['DashboardItem'][_0xc176('0x42')](_0x3c7c1b)[_0xc176('0x2f')](handleEntityNotFound(_0x17e111,null))[_0xc176('0x2f')](respondWithResult(_0x17e111,null))[_0xc176('0x43')](handleError(_0x17e111,null));};exports[_0xc176('0x2e')]=function(_0x38875c,_0xcaa2ad){return db[_0xc176('0x36')]['find']({'where':{'id':_0x38875c[_0xc176('0x35')]['id']}})[_0xc176('0x2f')](handleEntityNotFound(_0xcaa2ad,null))['then'](removeEntity(_0xcaa2ad,null))[_0xc176('0x43')](handleError(_0xcaa2ad,null));};function widgetAttributes(_0x196cb0){try{switch(_0x196cb0[_0xc176('0x44')]){case _0xc176('0x45'):return[{'name':_0xc176('0x46'),'value':_0x196cb0[_0xc176('0x46')]||(_0x196cb0['attrs']&&_0x196cb0['attrs'][0x0]?_0x196cb0[_0xc176('0x47')][0x0]['value']:undefined)||_0xc176('0x48')}];case _0xc176('0x49'):return[{'name':_0xc176('0x4a'),'value':_0x196cb0[_0xc176('0x4a')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x0]?_0x196cb0[_0xc176('0x47')][0x0][_0xc176('0x4b')]:undefined)||''}];case _0xc176('0x4c'):return[{'name':_0xc176('0x4d'),'value':_0x196cb0['attrHourFormat']||(_0x196cb0['attrs']&&_0x196cb0[_0xc176('0x47')][0x0]?_0x196cb0[_0xc176('0x47')][0x0]['value']:undefined)||'HH:mm:ss'},{'name':_0xc176('0x4e'),'value':_0x196cb0[_0xc176('0x4e')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x1]?_0x196cb0['attrs'][0x1]['value']:undefined)||'0.00'},{'name':_0xc176('0x4f'),'value':_0x196cb0[_0xc176('0x4f')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x2]?_0x196cb0[_0xc176('0x47')][0x2][_0xc176('0x4b')]:undefined)||0xc}];case _0xc176('0x50'):return[{'name':_0xc176('0x51'),'value':_0x196cb0[_0xc176('0x51')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x0]?_0x196cb0['attrs'][0x0][_0xc176('0x4b')]:undefined)||_0xc176('0x52')},{'name':_0xc176('0x53'),'value':_0x196cb0[_0xc176('0x53')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x1]?_0x196cb0[_0xc176('0x47')][0x1]['value']:undefined)||[]},{'name':_0xc176('0x4f'),'value':_0x196cb0['attrFontSize']||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x2]?_0x196cb0[_0xc176('0x47')][0x2][_0xc176('0x4b')]:undefined)||0x14},{'name':'attrChannel','value':_0x196cb0[_0xc176('0x54')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x3]?_0x196cb0['attrs'][0x3][_0xc176('0x4b')]:undefined)||_0xc176('0x55')},{'name':_0xc176('0x56'),'value':_0x196cb0[_0xc176('0x56')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x4]?_0x196cb0[_0xc176('0x47')][0x4][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x57'),'value':_0x196cb0[_0xc176('0x57')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x5]?_0x196cb0[_0xc176('0x47')][0x5][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x58'),'value':_0x196cb0[_0xc176('0x58')]||(_0x196cb0['attrs']&&_0x196cb0['attrs'][0x6]?_0x196cb0['attrs'][0x6]['value']:undefined)||''},{'name':_0xc176('0x59'),'value':_0x196cb0[_0xc176('0x59')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x7]?_0x196cb0['attrs'][0x7][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x5a'),'value':_0x196cb0[_0xc176('0x5a')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x8]?_0x196cb0[_0xc176('0x47')][0x8][_0xc176('0x4b')]:undefined)||''},{'name':'attrChatWebsites','value':_0x196cb0[_0xc176('0x5b')]||(_0x196cb0['attrs']&&_0x196cb0[_0xc176('0x47')][0x9]?_0x196cb0[_0xc176('0x47')][0x9][_0xc176('0x4b')]:undefined)||''}];case _0xc176('0x5c'):case _0xc176('0x5d'):return[{'name':_0xc176('0x5e'),'value':_0x196cb0[_0xc176('0x5e')]||(_0x196cb0['attrs']&&_0x196cb0[_0xc176('0x47')][0x0]?_0x196cb0[_0xc176('0x47')][0x0]['value']:undefined)||_0xc176('0x52')},{'name':_0xc176('0x5f'),'value':_0x196cb0[_0xc176('0x5f')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x1]?_0x196cb0[_0xc176('0x47')][0x1][_0xc176('0x4b')]:undefined)||null},{'name':'attrSerie3','value':_0x196cb0[_0xc176('0x60')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x2]?_0x196cb0['attrs'][0x2]['value']:undefined)||null},{'name':_0xc176('0x53'),'value':_0x196cb0[_0xc176('0x53')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x3]?_0x196cb0['attrs'][0x3][_0xc176('0x4b')]:undefined)||[]},{'name':_0xc176('0x54'),'value':_0x196cb0[_0xc176('0x54')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x4]?_0x196cb0[_0xc176('0x47')][0x4]['value']:undefined)||'voice'},{'name':'attrEmailAccounts','value':_0x196cb0[_0xc176('0x56')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x5]?_0x196cb0[_0xc176('0x47')][0x5][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x57'),'value':_0x196cb0[_0xc176('0x57')]||(_0x196cb0['attrs']&&_0x196cb0[_0xc176('0x47')][0x6]?_0x196cb0['attrs'][0x6][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x58'),'value':_0x196cb0[_0xc176('0x58')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x7]?_0x196cb0[_0xc176('0x47')][0x7]['value']:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x196cb0[_0xc176('0x59')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x8]?_0x196cb0[_0xc176('0x47')][0x8][_0xc176('0x4b')]:undefined)||''},{'name':_0xc176('0x5a'),'value':_0x196cb0[_0xc176('0x5a')]||(_0x196cb0['attrs']&&_0x196cb0[_0xc176('0x47')][0x9]?_0x196cb0[_0xc176('0x47')][0x9][_0xc176('0x4b')]:undefined)||''},{'name':'attrChatWebsites','value':_0x196cb0[_0xc176('0x5b')]||(_0x196cb0['attrs']&&_0x196cb0['attrs'][0xa]?_0x196cb0[_0xc176('0x47')][0xa]['value']:undefined)||''}];case'web-report':return[{'name':_0xc176('0x61'),'type':_0x196cb0[_0xc176('0x62')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0[_0xc176('0x47')][0x0]?_0x196cb0[_0xc176('0x47')][0x0][_0xc176('0x44')]:undefined)||null,'value':_0x196cb0[_0xc176('0x61')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x0]?_0x196cb0['attrs'][0x0][_0xc176('0x4b')]:undefined)||null},{'name':_0xc176('0x63'),'value':_0x196cb0[_0xc176('0x63')]||(_0x196cb0[_0xc176('0x47')]&&_0x196cb0['attrs'][0x1]?_0x196cb0[_0xc176('0x47')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x209ca6){logger[_0xc176('0x30')](_0xc176('0x64'),JSON[_0xc176('0x65')](_0x209ca6));return[];}}exports['create']=function(_0x1580fe,_0x1ce264){if(_0x1580fe[_0xc176('0x66')]){_0x1580fe[_0xc176('0x66')][_0xc176('0x47')]=widgetAttributes(_0x1580fe[_0xc176('0x66')]);}return db[_0xc176('0x36')][_0xc176('0x67')](_0x1580fe[_0xc176('0x66')],{})[_0xc176('0x2f')](respondWithResult(_0x1ce264,0xc9))[_0xc176('0x43')](handleError(_0x1ce264,null));};exports[_0xc176('0x2d')]=function(_0x55ccd7,_0x20ff1f){if(_0x55ccd7[_0xc176('0x66')]['id']){delete _0x55ccd7[_0xc176('0x66')]['id'];}_0x55ccd7['body'][_0xc176('0x47')]=widgetAttributes(_0x55ccd7[_0xc176('0x66')]);return db[_0xc176('0x36')][_0xc176('0x42')]({'where':{'id':_0x55ccd7[_0xc176('0x35')]['id']}})[_0xc176('0x2f')](handleEntityNotFound(_0x20ff1f,null))[_0xc176('0x2f')](saveUpdates(_0x55ccd7[_0xc176('0x66')],null))['then'](respondWithResult(_0x20ff1f,null))[_0xc176('0x43')](handleError(_0x20ff1f,null));};