Built motion from commit e0fa946e.|2.6.5
[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 _0x672a=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','then','destroy','end','error','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','intersection','attributes','fields','length','includeAll','include','merge','options','catch','find','type','iframe','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','attrSerie1','attrSerie2','attrSerie3','attrFaxAccounts','web-report','attrReport','reportType','stringify','body','create','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0xfba372,_0x2efc5c){var _0x94dcca=function(_0x188963){while(--_0x188963){_0xfba372['push'](_0xfba372['shift']());}};_0x94dcca(++_0x2efc5c);}(_0x672a,0x122));var _0xa672=function(_0x48ae85,_0x4f6363){_0x48ae85=_0x48ae85-0x0;var _0x2257bc=_0x672a[_0x48ae85];return _0x2257bc;};'use strict';var emlformat=require(_0xa672('0x0'));var rimraf=require(_0xa672('0x1'));var zipdir=require(_0xa672('0x2'));var jsonpatch=require(_0xa672('0x3'));var rp=require(_0xa672('0x4'));var moment=require(_0xa672('0x5'));var BPromise=require(_0xa672('0x6'));var Mustache=require(_0xa672('0x7'));var util=require(_0xa672('0x8'));var path=require(_0xa672('0x9'));var sox=require(_0xa672('0xa'));var csv=require('to-csv');var ejs=require(_0xa672('0xb'));var fs=require('fs');var fs_extra=require(_0xa672('0xc'));var _=require(_0xa672('0xd'));var squel=require(_0xa672('0xe'));var crypto=require(_0xa672('0xf'));var jsforce=require(_0xa672('0x10'));var deskjs=require(_0xa672('0x11'));var toCsv=require(_0xa672('0x12'));var querystring=require(_0xa672('0x13'));var Papa=require(_0xa672('0x14'));var Redis=require(_0xa672('0x15'));var authService=require(_0xa672('0x16'));var qs=require(_0xa672('0x17'));var as=require(_0xa672('0x18'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa672('0x19'))(_0xa672('0x1a'));var utils=require('../../config/utils');var config=require(_0xa672('0x1b'));var licenseUtil=require(_0xa672('0x1c'));var db=require(_0xa672('0x1d'))['db'];config[_0xa672('0x1e')]=_[_0xa672('0x1f')](config[_0xa672('0x1e')],{'host':_0xa672('0x20'),'port':0x18eb});var socket=require(_0xa672('0x21'))(new Redis(config[_0xa672('0x1e')]));require('./dashboardItem.socket')[_0xa672('0x22')](socket);function respondWithStatusCode(_0x3e1855,_0x587ecd){_0x587ecd=_0x587ecd||0xcc;return function(_0x58948a){if(_0x58948a){return _0x3e1855[_0xa672('0x23')](_0x587ecd);}return _0x3e1855['status'](_0x587ecd)['end']();};}function respondWithResult(_0x598ebd,_0x844fb9){_0x844fb9=_0x844fb9||0xc8;return function(_0x582a75){if(_0x582a75){return _0x598ebd['status'](_0x844fb9)[_0xa672('0x24')](_0x582a75);}};}function respondWithFilteredResult(_0x1943d9,_0x27eeaa){return function(_0xc5eeb3){if(_0xc5eeb3){var _0x929a34=typeof _0x27eeaa[_0xa672('0x25')]===_0xa672('0x26')&&typeof _0x27eeaa[_0xa672('0x27')]===_0xa672('0x26');var _0x389fe4=_0xc5eeb3['count'];var _0x39f938=_0x929a34?0x0:_0x27eeaa[_0xa672('0x25')];var _0x14f473=_0x929a34?_0xc5eeb3[_0xa672('0x28')]:_0x27eeaa[_0xa672('0x25')]+_0x27eeaa[_0xa672('0x27')];var _0x47c96e;if(_0x14f473>=_0x389fe4){_0x14f473=_0x389fe4;_0x47c96e=0xc8;}else{_0x47c96e=0xce;}_0x1943d9[_0xa672('0x29')](_0x47c96e);return _0x1943d9[_0xa672('0x2a')](_0xa672('0x2b'),_0x39f938+'-'+_0x14f473+'/'+_0x389fe4)[_0xa672('0x24')](_0xc5eeb3);}return null;};}function patchUpdates(_0x394e54){return function(_0x4d08be){try{jsonpatch[_0xa672('0x2c')](_0x4d08be,_0x394e54,!![]);}catch(_0x140537){return BPromise[_0xa672('0x2d')](_0x140537);}return _0x4d08be[_0xa672('0x2e')]();};}function saveUpdates(_0x4a9d19,_0x5043c6){return function(_0x7bd553){if(_0x7bd553){return _0x7bd553['update'](_0x4a9d19)[_0xa672('0x2f')](function(_0x31f755){return _0x31f755;});}return null;};}function removeEntity(_0x13141c,_0x6f8ffa){return function(_0xde0863){if(_0xde0863){return _0xde0863[_0xa672('0x30')]()['then'](function(){_0x13141c['status'](0xcc)[_0xa672('0x31')]();});}};}function handleEntityNotFound(_0x38fda4,_0x229f7f){return function(_0x5d3d6a){if(!_0x5d3d6a){_0x38fda4[_0xa672('0x23')](0x194);}return _0x5d3d6a;};}function handleError(_0xb131ef,_0x49abef){_0x49abef=_0x49abef||0x1f4;return function(_0x3cfa40){logger[_0xa672('0x32')](_0x3cfa40['stack']);if(_0x3cfa40[_0xa672('0x33')]){delete _0x3cfa40[_0xa672('0x33')];}_0xb131ef[_0xa672('0x29')](_0x49abef)[_0xa672('0x34')](_0x3cfa40);};}exports[_0xa672('0x35')]=function(_0xb1b624,_0x19760c){var _0x1250eb={'raw':![],'where':{'id':_0xb1b624[_0xa672('0x36')]['id']}},_0x48ccf3={};_0x48ccf3[_0xa672('0x37')]=_[_0xa672('0x38')](db[_0xa672('0x39')][_0xa672('0x3a')]);_0x48ccf3[_0xa672('0x3b')]=_['keys'](_0xb1b624[_0xa672('0x3b')]);_0x48ccf3['filters']=_[_0xa672('0x3c')](_0x48ccf3[_0xa672('0x37')],_0x48ccf3[_0xa672('0x3b')]);_0x1250eb[_0xa672('0x3d')]=_[_0xa672('0x3c')](_0x48ccf3['model'],qs['fields'](_0xb1b624['query'][_0xa672('0x3e')]));_0x1250eb['attributes']=_0x1250eb[_0xa672('0x3d')][_0xa672('0x3f')]?_0x1250eb[_0xa672('0x3d')]:_0x48ccf3[_0xa672('0x37')];if(_0xb1b624['query'][_0xa672('0x40')]){_0x1250eb[_0xa672('0x41')]=[{'all':!![]}];}_0x1250eb=_[_0xa672('0x42')]({},_0x1250eb,_0xb1b624[_0xa672('0x43')]);return db['DashboardItem']['find'](_0x1250eb)[_0xa672('0x2f')](handleEntityNotFound(_0x19760c,null))[_0xa672('0x2f')](respondWithResult(_0x19760c,null))[_0xa672('0x44')](handleError(_0x19760c,null));};exports[_0xa672('0x30')]=function(_0x38866c,_0x38681b){return db['DashboardItem'][_0xa672('0x45')]({'where':{'id':_0x38866c['params']['id']}})[_0xa672('0x2f')](handleEntityNotFound(_0x38681b,null))[_0xa672('0x2f')](removeEntity(_0x38681b,null))[_0xa672('0x44')](handleError(_0x38681b,null));};function widgetAttributes(_0x196cbd){try{switch(_0x196cbd[_0xa672('0x46')]){case _0xa672('0x47'):return[{'name':'attrUrl','value':_0x196cbd['attrUrl']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0][_0xa672('0x49')]:undefined)||_0xa672('0x4a')}];case _0xa672('0x4b'):return[{'name':_0xa672('0x4c'),'value':_0x196cbd[_0xa672('0x4c')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0][_0xa672('0x49')]:undefined)||''}];case _0xa672('0x4d'):return[{'name':'attrHourFormat','value':_0x196cbd[_0xa672('0x4e')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0][_0xa672('0x49')]:undefined)||'HH:mm:ss'},{'name':_0xa672('0x4f'),'value':_0x196cbd['attrTimezone']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x1]?_0x196cbd[_0xa672('0x48')][0x1][_0xa672('0x49')]:undefined)||_0xa672('0x50')},{'name':_0xa672('0x51'),'value':_0x196cbd[_0xa672('0x51')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x2]?_0x196cbd[_0xa672('0x48')][0x2][_0xa672('0x49')]:undefined)||0xc}];case _0xa672('0x52'):return[{'name':_0xa672('0x53'),'value':_0x196cbd[_0xa672('0x53')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd['attrs'][0x0][_0xa672('0x49')]:undefined)||_0xa672('0x54')},{'name':'attrVoiceQueues','value':_0x196cbd[_0xa672('0x55')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0x1]?_0x196cbd[_0xa672('0x48')][0x1][_0xa672('0x49')]:undefined)||[]},{'name':'attrFontSize','value':_0x196cbd[_0xa672('0x51')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x2]?_0x196cbd['attrs'][0x2][_0xa672('0x49')]:undefined)||0x14},{'name':_0xa672('0x56'),'value':_0x196cbd[_0xa672('0x56')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0x3]?_0x196cbd['attrs'][0x3][_0xa672('0x49')]:undefined)||_0xa672('0x57')},{'name':_0xa672('0x58'),'value':_0x196cbd[_0xa672('0x58')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x4]?_0x196cbd[_0xa672('0x48')][0x4]['value']:undefined)||''},{'name':'attrFaxAccounts','value':_0x196cbd['attrFaxAccounts']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x5]?_0x196cbd[_0xa672('0x48')][0x5]['value']:undefined)||''},{'name':_0xa672('0x59'),'value':_0x196cbd[_0xa672('0x59')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x6]?_0x196cbd['attrs'][0x6]['value']:undefined)||''},{'name':_0xa672('0x5a'),'value':_0x196cbd[_0xa672('0x5a')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x7]?_0x196cbd[_0xa672('0x48')][0x7][_0xa672('0x49')]:undefined)||''},{'name':_0xa672('0x5b'),'value':_0x196cbd[_0xa672('0x5b')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x8]?_0x196cbd['attrs'][0x8]['value']:undefined)||''},{'name':_0xa672('0x5c'),'value':_0x196cbd[_0xa672('0x5c')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x9]?_0x196cbd[_0xa672('0x48')][0x9][_0xa672('0x49')]:undefined)||''}];case'multibar-chart':case'pie-chart':return[{'name':_0xa672('0x5d'),'value':_0x196cbd[_0xa672('0x5d')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0][_0xa672('0x49')]:undefined)||_0xa672('0x54')},{'name':_0xa672('0x5e'),'value':_0x196cbd[_0xa672('0x5e')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x1]?_0x196cbd[_0xa672('0x48')][0x1][_0xa672('0x49')]:undefined)||null},{'name':_0xa672('0x5f'),'value':_0x196cbd[_0xa672('0x5f')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x2]?_0x196cbd[_0xa672('0x48')][0x2][_0xa672('0x49')]:undefined)||null},{'name':_0xa672('0x55'),'value':_0x196cbd['attrVoiceQueues']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0x3]?_0x196cbd['attrs'][0x3][_0xa672('0x49')]:undefined)||[]},{'name':_0xa672('0x56'),'value':_0x196cbd['attrChannel']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0x4]?_0x196cbd[_0xa672('0x48')][0x4][_0xa672('0x49')]:undefined)||'voice'},{'name':'attrEmailAccounts','value':_0x196cbd[_0xa672('0x58')]||(_0x196cbd['attrs']&&_0x196cbd[_0xa672('0x48')][0x5]?_0x196cbd['attrs'][0x5][_0xa672('0x49')]:undefined)||''},{'name':_0xa672('0x60'),'value':_0x196cbd['attrFaxAccounts']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x6]?_0x196cbd[_0xa672('0x48')][0x6][_0xa672('0x49')]:undefined)||''},{'name':_0xa672('0x59'),'value':_0x196cbd['attrSmsAccounts']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x7]?_0x196cbd[_0xa672('0x48')][0x7]['value']:undefined)||''},{'name':_0xa672('0x5a'),'value':_0x196cbd[_0xa672('0x5a')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0x8]?_0x196cbd['attrs'][0x8][_0xa672('0x49')]:undefined)||''},{'name':_0xa672('0x5b'),'value':_0x196cbd['attrWhatsappAccounts']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x9]?_0x196cbd[_0xa672('0x48')][0x9][_0xa672('0x49')]:undefined)||''},{'name':_0xa672('0x5c'),'value':_0x196cbd['attrChatWebsites']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd['attrs'][0xa]?_0x196cbd['attrs'][0xa][_0xa672('0x49')]:undefined)||''}];case _0xa672('0x61'):return[{'name':_0xa672('0x62'),'type':_0x196cbd[_0xa672('0x63')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0]['type']:undefined)||null,'value':_0x196cbd[_0xa672('0x62')]||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x0]?_0x196cbd[_0xa672('0x48')][0x0][_0xa672('0x49')]:undefined)||null},{'name':'attrRefresh','value':_0x196cbd['attrRefresh']||(_0x196cbd[_0xa672('0x48')]&&_0x196cbd[_0xa672('0x48')][0x1]?_0x196cbd['attrs'][0x1][_0xa672('0x49')]:undefined)||0x0}];default:return[];}}catch(_0x211bf5){logger[_0xa672('0x32')]('widgetAttributes:\x20%s',JSON[_0xa672('0x64')](_0x211bf5));return[];}}exports['create']=function(_0x187841,_0x15a647){if(_0x187841[_0xa672('0x65')]){_0x187841[_0xa672('0x65')]['attrs']=widgetAttributes(_0x187841['body']);}return db[_0xa672('0x39')][_0xa672('0x66')](_0x187841[_0xa672('0x65')],{})[_0xa672('0x2f')](respondWithResult(_0x15a647,0xc9))[_0xa672('0x44')](handleError(_0x15a647,null));};exports['update']=function(_0x4e9a3a,_0xe359a1){if(_0x4e9a3a['body']['id']){delete _0x4e9a3a[_0xa672('0x65')]['id'];}_0x4e9a3a[_0xa672('0x65')][_0xa672('0x48')]=widgetAttributes(_0x4e9a3a[_0xa672('0x65')]);return db[_0xa672('0x39')][_0xa672('0x45')]({'where':{'id':_0x4e9a3a[_0xa672('0x36')]['id']}})['then'](handleEntityNotFound(_0xe359a1,null))[_0xa672('0x2f')](saveUpdates(_0x4e9a3a[_0xa672('0x65')],null))[_0xa672('0x2f')](respondWithResult(_0xe359a1,null))[_0xa672('0x44')](handleError(_0xe359a1,null));};