66cb9917e6642d746708f1404771a7619793fbf7
[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 _0xa786=['show','params','model','keys','DashboardItem','rawAttributes','query','intersection','attributes','fields','length','includeAll','include','merge','find','catch','type','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','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','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','offset','undefined','limit','set','reject','save','update','then','destroy','error','stack','name'];(function(_0xcd26a9,_0x512e77){var _0x3afcbc=function(_0x40e770){while(--_0x40e770){_0xcd26a9['push'](_0xcd26a9['shift']());}};_0x3afcbc(++_0x512e77);}(_0xa786,0x1d2));var _0x6a78=function(_0x40384b,_0x246ed7){_0x40384b=_0x40384b-0x0;var _0x248620=_0xa786[_0x40384b];return _0x248620;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6a78('0x0'));var jsonpatch=require(_0x6a78('0x1'));var rp=require(_0x6a78('0x2'));var moment=require(_0x6a78('0x3'));var BPromise=require(_0x6a78('0x4'));var Mustache=require(_0x6a78('0x5'));var util=require(_0x6a78('0x6'));var path=require('path');var sox=require(_0x6a78('0x7'));var csv=require(_0x6a78('0x8'));var ejs=require(_0x6a78('0x9'));var fs=require('fs');var fs_extra=require(_0x6a78('0xa'));var _=require(_0x6a78('0xb'));var squel=require(_0x6a78('0xc'));var crypto=require(_0x6a78('0xd'));var jsforce=require(_0x6a78('0xe'));var deskjs=require(_0x6a78('0xf'));var toCsv=require(_0x6a78('0x8'));var querystring=require(_0x6a78('0x10'));var Papa=require(_0x6a78('0x11'));var Redis=require(_0x6a78('0x12'));var authService=require(_0x6a78('0x13'));var qs=require(_0x6a78('0x14'));var as=require(_0x6a78('0x15'));var hardwareService=require(_0x6a78('0x16'));var logger=require(_0x6a78('0x17'))(_0x6a78('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6a78('0x19'));var db=require(_0x6a78('0x1a'))['db'];config['redis']=_[_0x6a78('0x1b')](config[_0x6a78('0x1c')],{'host':_0x6a78('0x1d'),'port':0x18eb});var socket=require(_0x6a78('0x1e'))(new Redis(config[_0x6a78('0x1c')]));require(_0x6a78('0x1f'))[_0x6a78('0x20')](socket);function respondWithStatusCode(_0x5ac964,_0x56f140){_0x56f140=_0x56f140||0xcc;return function(_0x565f16){if(_0x565f16){return _0x5ac964[_0x6a78('0x21')](_0x56f140);}return _0x5ac964[_0x6a78('0x22')](_0x56f140)[_0x6a78('0x23')]();};}function respondWithResult(_0x535dc8,_0x1085ca){_0x1085ca=_0x1085ca||0xc8;return function(_0x428060){if(_0x428060){return _0x535dc8['status'](_0x1085ca)[_0x6a78('0x24')](_0x428060);}};}function respondWithFilteredResult(_0x136df2,_0x3f8fab){return function(_0x44f646){if(_0x44f646){var _0x3f24ac=typeof _0x3f8fab[_0x6a78('0x25')]===_0x6a78('0x26')&&typeof _0x3f8fab[_0x6a78('0x27')]==='undefined';var _0x2d6ef3=_0x44f646['count'];var _0x216365=_0x3f24ac?0x0:_0x3f8fab[_0x6a78('0x25')];var _0x2ae9c5=_0x3f24ac?_0x44f646['count']:_0x3f8fab[_0x6a78('0x25')]+_0x3f8fab['limit'];var _0x184637;if(_0x2ae9c5>=_0x2d6ef3){_0x2ae9c5=_0x2d6ef3;_0x184637=0xc8;}else{_0x184637=0xce;}_0x136df2['status'](_0x184637);return _0x136df2[_0x6a78('0x28')]('Content-Range',_0x216365+'-'+_0x2ae9c5+'/'+_0x2d6ef3)[_0x6a78('0x24')](_0x44f646);}return null;};}function patchUpdates(_0x4fbf83){return function(_0x4bcc06){try{jsonpatch['apply'](_0x4bcc06,_0x4fbf83,!![]);}catch(_0x3b7bea){return BPromise[_0x6a78('0x29')](_0x3b7bea);}return _0x4bcc06[_0x6a78('0x2a')]();};}function saveUpdates(_0x590657,_0x2746e4){return function(_0x287317){if(_0x287317){return _0x287317[_0x6a78('0x2b')](_0x590657)[_0x6a78('0x2c')](function(_0x56b7c2){return _0x56b7c2;});}return null;};}function removeEntity(_0xa401cb,_0x5ba74f){return function(_0x436e09){if(_0x436e09){return _0x436e09[_0x6a78('0x2d')]()[_0x6a78('0x2c')](function(){_0xa401cb[_0x6a78('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3eb79f,_0x2c1893){return function(_0x4ce883){if(!_0x4ce883){_0x3eb79f[_0x6a78('0x21')](0x194);}return _0x4ce883;};}function handleError(_0x526a94,_0x297708){_0x297708=_0x297708||0x1f4;return function(_0x48c692){logger[_0x6a78('0x2e')](_0x48c692[_0x6a78('0x2f')]);if(_0x48c692['name']){delete _0x48c692[_0x6a78('0x30')];}_0x526a94[_0x6a78('0x22')](_0x297708)['send'](_0x48c692);};}exports[_0x6a78('0x31')]=function(_0x216686,_0x5abf0b){var _0x1e5cd4={'raw':![],'where':{'id':_0x216686[_0x6a78('0x32')]['id']}},_0x86d08f={};_0x86d08f[_0x6a78('0x33')]=_[_0x6a78('0x34')](db[_0x6a78('0x35')][_0x6a78('0x36')]);_0x86d08f['query']=_[_0x6a78('0x34')](_0x216686[_0x6a78('0x37')]);_0x86d08f['filters']=_[_0x6a78('0x38')](_0x86d08f['model'],_0x86d08f[_0x6a78('0x37')]);_0x1e5cd4[_0x6a78('0x39')]=_['intersection'](_0x86d08f[_0x6a78('0x33')],qs[_0x6a78('0x3a')](_0x216686['query'][_0x6a78('0x3a')]));_0x1e5cd4['attributes']=_0x1e5cd4[_0x6a78('0x39')][_0x6a78('0x3b')]?_0x1e5cd4['attributes']:_0x86d08f['model'];if(_0x216686[_0x6a78('0x37')][_0x6a78('0x3c')]){_0x1e5cd4[_0x6a78('0x3d')]=[{'all':!![]}];}_0x1e5cd4=_[_0x6a78('0x3e')]({},_0x1e5cd4,_0x216686['options']);return db['DashboardItem'][_0x6a78('0x3f')](_0x1e5cd4)['then'](handleEntityNotFound(_0x5abf0b,null))[_0x6a78('0x2c')](respondWithResult(_0x5abf0b,null))[_0x6a78('0x40')](handleError(_0x5abf0b,null));};exports['destroy']=function(_0x6fb89c,_0x580aad){return db[_0x6a78('0x35')][_0x6a78('0x3f')]({'where':{'id':_0x6fb89c['params']['id']}})[_0x6a78('0x2c')](handleEntityNotFound(_0x580aad,null))['then'](removeEntity(_0x580aad,null))[_0x6a78('0x40')](handleError(_0x580aad,null));};function widgetAttributes(_0x227cab){try{switch(_0x227cab[_0x6a78('0x41')]){case _0x6a78('0x42'):return[{'name':_0x6a78('0x43'),'value':_0x227cab[_0x6a78('0x43')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x0]?_0x227cab[_0x6a78('0x44')][0x0]['value']:undefined)||_0x6a78('0x45')}];case _0x6a78('0x46'):return[{'name':_0x6a78('0x47'),'value':_0x227cab[_0x6a78('0x47')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x0]?_0x227cab[_0x6a78('0x44')][0x0][_0x6a78('0x48')]:undefined)||''}];case _0x6a78('0x49'):return[{'name':_0x6a78('0x4a'),'value':_0x227cab[_0x6a78('0x4a')]||(_0x227cab['attrs']&&_0x227cab[_0x6a78('0x44')][0x0]?_0x227cab['attrs'][0x0][_0x6a78('0x48')]:undefined)||_0x6a78('0x4b')},{'name':_0x6a78('0x4c'),'value':_0x227cab['attrTimezone']||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x1]?_0x227cab[_0x6a78('0x44')][0x1][_0x6a78('0x48')]:undefined)||_0x6a78('0x4d')},{'name':_0x6a78('0x4e'),'value':_0x227cab[_0x6a78('0x4e')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x2]?_0x227cab[_0x6a78('0x44')][0x2][_0x6a78('0x48')]:undefined)||0xc}];case _0x6a78('0x4f'):return[{'name':_0x6a78('0x50'),'value':_0x227cab[_0x6a78('0x50')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x0]?_0x227cab[_0x6a78('0x44')][0x0][_0x6a78('0x48')]:undefined)||_0x6a78('0x51')},{'name':_0x6a78('0x52'),'value':_0x227cab[_0x6a78('0x52')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x1]?_0x227cab[_0x6a78('0x44')][0x1][_0x6a78('0x48')]:undefined)||[]},{'name':'attrFontSize','value':_0x227cab[_0x6a78('0x4e')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x2]?_0x227cab[_0x6a78('0x44')][0x2][_0x6a78('0x48')]:undefined)||0x14},{'name':_0x6a78('0x53'),'value':_0x227cab[_0x6a78('0x53')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x3]?_0x227cab[_0x6a78('0x44')][0x3]['value']:undefined)||_0x6a78('0x54')},{'name':_0x6a78('0x55'),'value':_0x227cab[_0x6a78('0x55')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x4]?_0x227cab[_0x6a78('0x44')][0x4][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x56'),'value':_0x227cab[_0x6a78('0x56')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x5]?_0x227cab['attrs'][0x5][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x57'),'value':_0x227cab[_0x6a78('0x57')]||(_0x227cab['attrs']&&_0x227cab[_0x6a78('0x44')][0x6]?_0x227cab[_0x6a78('0x44')][0x6][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x58'),'value':_0x227cab[_0x6a78('0x58')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x7]?_0x227cab['attrs'][0x7]['value']:undefined)||''},{'name':_0x6a78('0x59'),'value':_0x227cab[_0x6a78('0x59')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x8]?_0x227cab[_0x6a78('0x44')][0x8][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x5a'),'value':_0x227cab[_0x6a78('0x5a')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x9]?_0x227cab[_0x6a78('0x44')][0x9][_0x6a78('0x48')]:undefined)||''}];case _0x6a78('0x5b'):case _0x6a78('0x5c'):return[{'name':_0x6a78('0x5d'),'value':_0x227cab[_0x6a78('0x5d')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x0]?_0x227cab[_0x6a78('0x44')][0x0][_0x6a78('0x48')]:undefined)||'total'},{'name':'attrSerie2','value':_0x227cab[_0x6a78('0x5e')]||(_0x227cab['attrs']&&_0x227cab['attrs'][0x1]?_0x227cab[_0x6a78('0x44')][0x1][_0x6a78('0x48')]:undefined)||null},{'name':_0x6a78('0x5f'),'value':_0x227cab[_0x6a78('0x5f')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x2]?_0x227cab['attrs'][0x2][_0x6a78('0x48')]:undefined)||null},{'name':_0x6a78('0x52'),'value':_0x227cab[_0x6a78('0x52')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x3]?_0x227cab['attrs'][0x3]['value']:undefined)||[]},{'name':_0x6a78('0x53'),'value':_0x227cab[_0x6a78('0x53')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x4]?_0x227cab[_0x6a78('0x44')][0x4][_0x6a78('0x48')]:undefined)||_0x6a78('0x54')},{'name':_0x6a78('0x55'),'value':_0x227cab[_0x6a78('0x55')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x5]?_0x227cab[_0x6a78('0x44')][0x5]['value']:undefined)||''},{'name':'attrFaxAccounts','value':_0x227cab['attrFaxAccounts']||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x6]?_0x227cab[_0x6a78('0x44')][0x6][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x57'),'value':_0x227cab[_0x6a78('0x57')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x7]?_0x227cab[_0x6a78('0x44')][0x7]['value']:undefined)||''},{'name':_0x6a78('0x58'),'value':_0x227cab[_0x6a78('0x58')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x8]?_0x227cab['attrs'][0x8][_0x6a78('0x48')]:undefined)||''},{'name':_0x6a78('0x59'),'value':_0x227cab[_0x6a78('0x59')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x9]?_0x227cab[_0x6a78('0x44')][0x9]['value']:undefined)||''},{'name':_0x6a78('0x5a'),'value':_0x227cab[_0x6a78('0x5a')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0xa]?_0x227cab[_0x6a78('0x44')][0xa]['value']:undefined)||''}];case'web-report':return[{'name':_0x6a78('0x60'),'type':_0x227cab[_0x6a78('0x61')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x0]?_0x227cab['attrs'][0x0]['type']:undefined)||null,'value':_0x227cab['attrReport']||(_0x227cab[_0x6a78('0x44')]&&_0x227cab['attrs'][0x0]?_0x227cab['attrs'][0x0][_0x6a78('0x48')]:undefined)||null},{'name':'attrRefresh','value':_0x227cab[_0x6a78('0x62')]||(_0x227cab[_0x6a78('0x44')]&&_0x227cab[_0x6a78('0x44')][0x1]?_0x227cab['attrs'][0x1][_0x6a78('0x48')]:undefined)||0x0}];default:return[];}}catch(_0x688ac0){logger['error'](_0x6a78('0x63'),JSON[_0x6a78('0x64')](_0x688ac0));return[];}}exports['create']=function(_0x400d8d,_0x56df7a){if(_0x400d8d[_0x6a78('0x65')]){_0x400d8d[_0x6a78('0x65')][_0x6a78('0x44')]=widgetAttributes(_0x400d8d[_0x6a78('0x65')]);}return db[_0x6a78('0x35')][_0x6a78('0x66')](_0x400d8d[_0x6a78('0x65')],{})['then'](respondWithResult(_0x56df7a,0xc9))['catch'](handleError(_0x56df7a,null));};exports[_0x6a78('0x2b')]=function(_0x284b7f,_0x56ad1e){if(_0x284b7f[_0x6a78('0x65')]['id']){delete _0x284b7f[_0x6a78('0x65')]['id'];}_0x284b7f[_0x6a78('0x65')]['attrs']=widgetAttributes(_0x284b7f['body']);return db[_0x6a78('0x35')][_0x6a78('0x3f')]({'where':{'id':_0x284b7f[_0x6a78('0x32')]['id']}})[_0x6a78('0x2c')](handleEntityNotFound(_0x56ad1e,null))[_0x6a78('0x2c')](saveUpdates(_0x284b7f[_0x6a78('0x65')],null))[_0x6a78('0x2c')](respondWithResult(_0x56ad1e,null))[_0x6a78('0x40')](handleError(_0x56ad1e,null));};