Built motion from commit d13fb11b.|2.6.34
[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 _0x7c09=['params','model','keys','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','DashboardItem','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','attrVoiceQueues','attrChatWebsites','web-report','attrReport','reportType','attrRefresh','stringify','body','update','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','error','stack','name','send','show'];(function(_0x5bf6bf,_0x45da79){var _0x253357=function(_0x14422f){while(--_0x14422f){_0x5bf6bf['push'](_0x5bf6bf['shift']());}};_0x253357(++_0x45da79);}(_0x7c09,0x102));var _0x97c0=function(_0x177425,_0x36f463){_0x177425=_0x177425-0x0;var _0x28937f=_0x7c09[_0x177425];return _0x28937f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x97c0('0x0'));var zipdir=require(_0x97c0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x97c0('0x2'));var moment=require(_0x97c0('0x3'));var BPromise=require(_0x97c0('0x4'));var Mustache=require(_0x97c0('0x5'));var util=require(_0x97c0('0x6'));var path=require(_0x97c0('0x7'));var sox=require(_0x97c0('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x97c0('0x9'));var squel=require(_0x97c0('0xa'));var crypto=require(_0x97c0('0xb'));var jsforce=require(_0x97c0('0xc'));var deskjs=require(_0x97c0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x97c0('0xe'));var Papa=require('papaparse');var Redis=require(_0x97c0('0xf'));var authService=require(_0x97c0('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x97c0('0x11'));var logger=require(_0x97c0('0x12'))(_0x97c0('0x13'));var utils=require(_0x97c0('0x14'));var config=require(_0x97c0('0x15'));var licenseUtil=require(_0x97c0('0x16'));var db=require(_0x97c0('0x17'))['db'];config[_0x97c0('0x18')]=_[_0x97c0('0x19')](config[_0x97c0('0x18')],{'host':_0x97c0('0x1a'),'port':0x18eb});var socket=require(_0x97c0('0x1b'))(new Redis(config[_0x97c0('0x18')]));require('./dashboardItem.socket')[_0x97c0('0x1c')](socket);function respondWithStatusCode(_0x15b336,_0xcac10b){_0xcac10b=_0xcac10b||0xcc;return function(_0x496017){if(_0x496017){return _0x15b336[_0x97c0('0x1d')](_0xcac10b);}return _0x15b336[_0x97c0('0x1e')](_0xcac10b)[_0x97c0('0x1f')]();};}function respondWithResult(_0x21e5f7,_0x482be5){_0x482be5=_0x482be5||0xc8;return function(_0x13d46e){if(_0x13d46e){return _0x21e5f7['status'](_0x482be5)[_0x97c0('0x20')](_0x13d46e);}};}function respondWithFilteredResult(_0x3ae7c4,_0x51180e){return function(_0x560ac0){if(_0x560ac0){var _0x16918b=typeof _0x51180e[_0x97c0('0x21')]===_0x97c0('0x22')&&typeof _0x51180e[_0x97c0('0x23')]===_0x97c0('0x22');var _0x4fed42=_0x560ac0[_0x97c0('0x24')];var _0x432705=_0x16918b?0x0:_0x51180e[_0x97c0('0x21')];var _0x4ca20a=_0x16918b?_0x560ac0['count']:_0x51180e[_0x97c0('0x21')]+_0x51180e[_0x97c0('0x23')];var _0x169f19;if(_0x4ca20a>=_0x4fed42){_0x4ca20a=_0x4fed42;_0x169f19=0xc8;}else{_0x169f19=0xce;}_0x3ae7c4['status'](_0x169f19);return _0x3ae7c4[_0x97c0('0x25')](_0x97c0('0x26'),_0x432705+'-'+_0x4ca20a+'/'+_0x4fed42)[_0x97c0('0x20')](_0x560ac0);}return null;};}function patchUpdates(_0x272314){return function(_0x30fba2){try{jsonpatch[_0x97c0('0x27')](_0x30fba2,_0x272314,!![]);}catch(_0x9dff60){return BPromise['reject'](_0x9dff60);}return _0x30fba2[_0x97c0('0x28')]();};}function saveUpdates(_0x29b3aa,_0x1f7adb){return function(_0x216785){if(_0x216785){return _0x216785['update'](_0x29b3aa)[_0x97c0('0x29')](function(_0x14cada){return _0x14cada;});}return null;};}function removeEntity(_0x52a429,_0x2ec9d6){return function(_0x2bb908){if(_0x2bb908){return _0x2bb908[_0x97c0('0x2a')]()['then'](function(){_0x52a429['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x11b8ad,_0x8e3ee7){return function(_0x3a744c){if(!_0x3a744c){_0x11b8ad[_0x97c0('0x1d')](0x194);}return _0x3a744c;};}function handleError(_0x26939e,_0x153b14){_0x153b14=_0x153b14||0x1f4;return function(_0x4a3645){logger[_0x97c0('0x2b')](_0x4a3645[_0x97c0('0x2c')]);if(_0x4a3645[_0x97c0('0x2d')]){delete _0x4a3645['name'];}_0x26939e[_0x97c0('0x1e')](_0x153b14)[_0x97c0('0x2e')](_0x4a3645);};}exports[_0x97c0('0x2f')]=function(_0x23d2af,_0x2a7b2b){var _0x5c4e4e={'raw':![],'where':{'id':_0x23d2af[_0x97c0('0x30')]['id']}},_0x59abbb={};_0x59abbb[_0x97c0('0x31')]=_[_0x97c0('0x32')](db['DashboardItem'][_0x97c0('0x33')]);_0x59abbb[_0x97c0('0x34')]=_['keys'](_0x23d2af[_0x97c0('0x34')]);_0x59abbb[_0x97c0('0x35')]=_[_0x97c0('0x36')](_0x59abbb[_0x97c0('0x31')],_0x59abbb[_0x97c0('0x34')]);_0x5c4e4e[_0x97c0('0x37')]=_[_0x97c0('0x36')](_0x59abbb[_0x97c0('0x31')],qs[_0x97c0('0x38')](_0x23d2af[_0x97c0('0x34')][_0x97c0('0x38')]));_0x5c4e4e[_0x97c0('0x37')]=_0x5c4e4e[_0x97c0('0x37')][_0x97c0('0x39')]?_0x5c4e4e[_0x97c0('0x37')]:_0x59abbb['model'];if(_0x23d2af[_0x97c0('0x34')][_0x97c0('0x3a')]){_0x5c4e4e[_0x97c0('0x3b')]=[{'all':!![]}];}_0x5c4e4e=_[_0x97c0('0x3c')]({},_0x5c4e4e,_0x23d2af[_0x97c0('0x3d')]);return db[_0x97c0('0x3e')][_0x97c0('0x3f')](_0x5c4e4e)[_0x97c0('0x29')](handleEntityNotFound(_0x2a7b2b,null))['then'](respondWithResult(_0x2a7b2b,null))[_0x97c0('0x40')](handleError(_0x2a7b2b,null));};exports['destroy']=function(_0x23e482,_0x20291){return db[_0x97c0('0x3e')][_0x97c0('0x3f')]({'where':{'id':_0x23e482[_0x97c0('0x30')]['id']}})[_0x97c0('0x29')](handleEntityNotFound(_0x20291,null))[_0x97c0('0x29')](removeEntity(_0x20291,null))[_0x97c0('0x40')](handleError(_0x20291,null));};function widgetAttributes(_0x38f37a){try{switch(_0x38f37a[_0x97c0('0x41')]){case _0x97c0('0x42'):return[{'name':'attrUrl','value':_0x38f37a[_0x97c0('0x43')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a['attrs'][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x45')]:undefined)||_0x97c0('0x46')}];case _0x97c0('0x47'):return[{'name':'attrPath','value':_0x38f37a[_0x97c0('0x48')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x0]?_0x38f37a[_0x97c0('0x44')][0x0]['value']:undefined)||''}];case _0x97c0('0x49'):return[{'name':_0x97c0('0x4a'),'value':_0x38f37a[_0x97c0('0x4a')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x45')]:undefined)||_0x97c0('0x4b')},{'name':_0x97c0('0x4c'),'value':_0x38f37a[_0x97c0('0x4c')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x1]?_0x38f37a[_0x97c0('0x44')][0x1]['value']:undefined)||_0x97c0('0x4d')},{'name':_0x97c0('0x4e'),'value':_0x38f37a[_0x97c0('0x4e')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x2]?_0x38f37a[_0x97c0('0x44')][0x2][_0x97c0('0x45')]:undefined)||0xc}];case'counter':return[{'name':'attrMetric','value':_0x38f37a[_0x97c0('0x4f')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x45')]:undefined)||'total'},{'name':'attrVoiceQueues','value':_0x38f37a['attrVoiceQueues']||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a['attrs'][0x1]?_0x38f37a['attrs'][0x1][_0x97c0('0x45')]:undefined)||[]},{'name':_0x97c0('0x4e'),'value':_0x38f37a[_0x97c0('0x4e')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x2]?_0x38f37a['attrs'][0x2][_0x97c0('0x45')]:undefined)||0x14},{'name':_0x97c0('0x50'),'value':_0x38f37a[_0x97c0('0x50')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x3]?_0x38f37a[_0x97c0('0x44')][0x3][_0x97c0('0x45')]:undefined)||_0x97c0('0x51')},{'name':_0x97c0('0x52'),'value':_0x38f37a[_0x97c0('0x52')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x4]?_0x38f37a[_0x97c0('0x44')][0x4][_0x97c0('0x45')]:undefined)||''},{'name':_0x97c0('0x53'),'value':_0x38f37a['attrFaxAccounts']||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x5]?_0x38f37a[_0x97c0('0x44')][0x5][_0x97c0('0x45')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x38f37a[_0x97c0('0x54')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x6]?_0x38f37a[_0x97c0('0x44')][0x6][_0x97c0('0x45')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x38f37a[_0x97c0('0x55')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x7]?_0x38f37a['attrs'][0x7]['value']:undefined)||''},{'name':_0x97c0('0x56'),'value':_0x38f37a['attrWhatsappAccounts']||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x8]?_0x38f37a[_0x97c0('0x44')][0x8][_0x97c0('0x45')]:undefined)||''},{'name':'attrChatWebsites','value':_0x38f37a['attrChatWebsites']||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x9]?_0x38f37a[_0x97c0('0x44')][0x9][_0x97c0('0x45')]:undefined)||''}];case _0x97c0('0x57'):case _0x97c0('0x58'):return[{'name':_0x97c0('0x59'),'value':_0x38f37a[_0x97c0('0x59')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x45')]:undefined)||_0x97c0('0x5a')},{'name':_0x97c0('0x5b'),'value':_0x38f37a[_0x97c0('0x5b')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x1]?_0x38f37a[_0x97c0('0x44')][0x1]['value']:undefined)||null},{'name':_0x97c0('0x5c'),'value':_0x38f37a[_0x97c0('0x5c')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x2]?_0x38f37a[_0x97c0('0x44')][0x2][_0x97c0('0x45')]:undefined)||null},{'name':_0x97c0('0x5d'),'value':_0x38f37a['attrVoiceQueues']||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x3]?_0x38f37a[_0x97c0('0x44')][0x3][_0x97c0('0x45')]:undefined)||[]},{'name':_0x97c0('0x50'),'value':_0x38f37a[_0x97c0('0x50')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x4]?_0x38f37a[_0x97c0('0x44')][0x4][_0x97c0('0x45')]:undefined)||_0x97c0('0x51')},{'name':_0x97c0('0x52'),'value':_0x38f37a[_0x97c0('0x52')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x5]?_0x38f37a[_0x97c0('0x44')][0x5][_0x97c0('0x45')]:undefined)||''},{'name':_0x97c0('0x53'),'value':_0x38f37a[_0x97c0('0x53')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a['attrs'][0x6]?_0x38f37a[_0x97c0('0x44')][0x6][_0x97c0('0x45')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x38f37a[_0x97c0('0x54')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x7]?_0x38f37a['attrs'][0x7][_0x97c0('0x45')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x38f37a[_0x97c0('0x55')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x8]?_0x38f37a[_0x97c0('0x44')][0x8][_0x97c0('0x45')]:undefined)||''},{'name':_0x97c0('0x56'),'value':_0x38f37a[_0x97c0('0x56')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x9]?_0x38f37a[_0x97c0('0x44')][0x9][_0x97c0('0x45')]:undefined)||''},{'name':'attrChatWebsites','value':_0x38f37a[_0x97c0('0x5e')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0xa]?_0x38f37a[_0x97c0('0x44')][0xa]['value']:undefined)||''}];case _0x97c0('0x5f'):return[{'name':_0x97c0('0x60'),'type':_0x38f37a[_0x97c0('0x61')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a['attrs'][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x41')]:undefined)||null,'value':_0x38f37a[_0x97c0('0x60')]||(_0x38f37a['attrs']&&_0x38f37a[_0x97c0('0x44')][0x0]?_0x38f37a[_0x97c0('0x44')][0x0][_0x97c0('0x45')]:undefined)||null},{'name':_0x97c0('0x62'),'value':_0x38f37a[_0x97c0('0x62')]||(_0x38f37a[_0x97c0('0x44')]&&_0x38f37a[_0x97c0('0x44')][0x1]?_0x38f37a['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0xeb4eb3){logger[_0x97c0('0x2b')]('widgetAttributes:\x20%s',JSON[_0x97c0('0x63')](_0xeb4eb3));return[];}}exports['create']=function(_0x5dc808,_0x3518fb){if(_0x5dc808['body']){_0x5dc808[_0x97c0('0x64')][_0x97c0('0x44')]=widgetAttributes(_0x5dc808['body']);}return db['DashboardItem']['create'](_0x5dc808[_0x97c0('0x64')],{})['then'](respondWithResult(_0x3518fb,0xc9))[_0x97c0('0x40')](handleError(_0x3518fb,null));};exports[_0x97c0('0x65')]=function(_0xdbadf4,_0x26bed6){if(_0xdbadf4[_0x97c0('0x64')]['id']){delete _0xdbadf4[_0x97c0('0x64')]['id'];}_0xdbadf4[_0x97c0('0x64')][_0x97c0('0x44')]=widgetAttributes(_0xdbadf4[_0x97c0('0x64')]);return db[_0x97c0('0x3e')][_0x97c0('0x3f')]({'where':{'id':_0xdbadf4['params']['id']}})[_0x97c0('0x29')](handleEntityNotFound(_0x26bed6,null))[_0x97c0('0x29')](saveUpdates(_0xdbadf4[_0x97c0('0x64')],null))[_0x97c0('0x29')](respondWithResult(_0x26bed6,null))[_0x97c0('0x40')](handleError(_0x26bed6,null));};