b943f1cd3acf97d227d1aff4d72202235625e25b
[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 _0x99a0=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','merge','options','find','destroy','type','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','multibar-chart','attrSerie1','attrSerie2','attrSerie3','attrChatWebsites','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','create','body','catch','eml-format','rimraf','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x4d2583,_0x52bd89){var _0x57fa3a=function(_0x3ad39c){while(--_0x3ad39c){_0x4d2583['push'](_0x4d2583['shift']());}};_0x57fa3a(++_0x52bd89);}(_0x99a0,0x121));var _0x099a=function(_0xff9570,_0x38d1d1){_0xff9570=_0xff9570-0x0;var _0x4e1543=_0x99a0[_0xff9570];return _0x4e1543;};'use strict';var emlformat=require(_0x099a('0x0'));var rimraf=require(_0x099a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x099a('0x2'));var Mustache=require(_0x099a('0x3'));var util=require('util');var path=require(_0x099a('0x4'));var sox=require(_0x099a('0x5'));var csv=require(_0x099a('0x6'));var ejs=require(_0x099a('0x7'));var fs=require('fs');var fs_extra=require(_0x099a('0x8'));var _=require(_0x099a('0x9'));var squel=require('squel');var crypto=require(_0x099a('0xa'));var jsforce=require(_0x099a('0xb'));var deskjs=require(_0x099a('0xc'));var toCsv=require('to-csv');var querystring=require(_0x099a('0xd'));var Papa=require(_0x099a('0xe'));var Redis=require(_0x099a('0xf'));var authService=require(_0x099a('0x10'));var qs=require(_0x099a('0x11'));var as=require(_0x099a('0x12'));var hardwareService=require(_0x099a('0x13'));var logger=require(_0x099a('0x14'))(_0x099a('0x15'));var utils=require(_0x099a('0x16'));var config=require(_0x099a('0x17'));var licenseUtil=require(_0x099a('0x18'));var db=require(_0x099a('0x19'))['db'];config[_0x099a('0x1a')]=_[_0x099a('0x1b')](config['redis'],{'host':_0x099a('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x099a('0x1a')]));require('./dashboardItem.socket')[_0x099a('0x1d')](socket);function respondWithStatusCode(_0x3a134e,_0x2a1c99){_0x2a1c99=_0x2a1c99||0xcc;return function(_0x1a2fbb){if(_0x1a2fbb){return _0x3a134e[_0x099a('0x1e')](_0x2a1c99);}return _0x3a134e[_0x099a('0x1f')](_0x2a1c99)['end']();};}function respondWithResult(_0x443eea,_0x88c471){_0x88c471=_0x88c471||0xc8;return function(_0x452a34){if(_0x452a34){return _0x443eea[_0x099a('0x1f')](_0x88c471)['json'](_0x452a34);}};}function respondWithFilteredResult(_0x2831a2,_0x57cb3c){return function(_0x1d3924){if(_0x1d3924){var _0x26bf41=typeof _0x57cb3c[_0x099a('0x20')]==='undefined'&&typeof _0x57cb3c[_0x099a('0x21')]===_0x099a('0x22');var _0x1c5314=_0x1d3924[_0x099a('0x23')];var _0x364fad=_0x26bf41?0x0:_0x57cb3c['offset'];var _0x4e183b=_0x26bf41?_0x1d3924[_0x099a('0x23')]:_0x57cb3c[_0x099a('0x20')]+_0x57cb3c[_0x099a('0x21')];var _0x470df6;if(_0x4e183b>=_0x1c5314){_0x4e183b=_0x1c5314;_0x470df6=0xc8;}else{_0x470df6=0xce;}_0x2831a2[_0x099a('0x1f')](_0x470df6);return _0x2831a2[_0x099a('0x24')](_0x099a('0x25'),_0x364fad+'-'+_0x4e183b+'/'+_0x1c5314)[_0x099a('0x26')](_0x1d3924);}return null;};}function patchUpdates(_0x545830){return function(_0x55bd85){try{jsonpatch[_0x099a('0x27')](_0x55bd85,_0x545830,!![]);}catch(_0x38dd6a){return BPromise[_0x099a('0x28')](_0x38dd6a);}return _0x55bd85[_0x099a('0x29')]();};}function saveUpdates(_0x1d1e5f,_0x2527f9){return function(_0x126b05){if(_0x126b05){return _0x126b05[_0x099a('0x2a')](_0x1d1e5f)[_0x099a('0x2b')](function(_0x42ee18){return _0x42ee18;});}return null;};}function removeEntity(_0x21a937,_0x4d63d5){return function(_0x422c3c){if(_0x422c3c){return _0x422c3c['destroy']()[_0x099a('0x2b')](function(){_0x21a937[_0x099a('0x1f')](0xcc)[_0x099a('0x2c')]();});}};}function handleEntityNotFound(_0x4cbc26,_0x320d29){return function(_0x1101aa){if(!_0x1101aa){_0x4cbc26[_0x099a('0x1e')](0x194);}return _0x1101aa;};}function handleError(_0x485d12,_0x4b2bba){_0x4b2bba=_0x4b2bba||0x1f4;return function(_0x560fdb){logger[_0x099a('0x2d')](_0x560fdb[_0x099a('0x2e')]);if(_0x560fdb['name']){delete _0x560fdb[_0x099a('0x2f')];}_0x485d12[_0x099a('0x1f')](_0x4b2bba)[_0x099a('0x30')](_0x560fdb);};}exports[_0x099a('0x31')]=function(_0x462c0d,_0x36c1b4){var _0x57d1f3={'raw':![],'where':{'id':_0x462c0d[_0x099a('0x32')]['id']}},_0x49c257={};_0x49c257[_0x099a('0x33')]=_[_0x099a('0x34')](db[_0x099a('0x35')][_0x099a('0x36')]);_0x49c257[_0x099a('0x37')]=_[_0x099a('0x34')](_0x462c0d['query']);_0x49c257[_0x099a('0x38')]=_[_0x099a('0x39')](_0x49c257[_0x099a('0x33')],_0x49c257[_0x099a('0x37')]);_0x57d1f3[_0x099a('0x3a')]=_[_0x099a('0x39')](_0x49c257['model'],qs[_0x099a('0x3b')](_0x462c0d['query'][_0x099a('0x3b')]));_0x57d1f3[_0x099a('0x3a')]=_0x57d1f3['attributes'][_0x099a('0x3c')]?_0x57d1f3[_0x099a('0x3a')]:_0x49c257[_0x099a('0x33')];if(_0x462c0d[_0x099a('0x37')][_0x099a('0x3d')]){_0x57d1f3['include']=[{'all':!![]}];}_0x57d1f3=_[_0x099a('0x3e')]({},_0x57d1f3,_0x462c0d[_0x099a('0x3f')]);return db['DashboardItem'][_0x099a('0x40')](_0x57d1f3)[_0x099a('0x2b')](handleEntityNotFound(_0x36c1b4,null))[_0x099a('0x2b')](respondWithResult(_0x36c1b4,null))['catch'](handleError(_0x36c1b4,null));};exports[_0x099a('0x41')]=function(_0x2f4cca,_0x1e8a23){return db[_0x099a('0x35')][_0x099a('0x40')]({'where':{'id':_0x2f4cca[_0x099a('0x32')]['id']}})['then'](handleEntityNotFound(_0x1e8a23,null))[_0x099a('0x2b')](removeEntity(_0x1e8a23,null))['catch'](handleError(_0x1e8a23,null));};function widgetAttributes(_0x2dd733){try{switch(_0x2dd733[_0x099a('0x42')]){case'iframe':return[{'name':_0x099a('0x43'),'value':_0x2dd733[_0x099a('0x43')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733[_0x099a('0x44')][0x0][_0x099a('0x45')]:undefined)||_0x099a('0x46')}];case _0x099a('0x47'):return[{'name':_0x099a('0x48'),'value':_0x2dd733['attrPath']||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733[_0x099a('0x44')][0x0][_0x099a('0x45')]:undefined)||''}];case _0x099a('0x49'):return[{'name':_0x099a('0x4a'),'value':_0x2dd733['attrHourFormat']||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733[_0x099a('0x44')][0x0]['value']:undefined)||_0x099a('0x4b')},{'name':'attrTimezone','value':_0x2dd733[_0x099a('0x4c')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x1]?_0x2dd733[_0x099a('0x44')][0x1][_0x099a('0x45')]:undefined)||_0x099a('0x4d')},{'name':_0x099a('0x4e'),'value':_0x2dd733[_0x099a('0x4e')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x2]?_0x2dd733['attrs'][0x2][_0x099a('0x45')]:undefined)||0xc}];case'counter':return[{'name':_0x099a('0x4f'),'value':_0x2dd733[_0x099a('0x4f')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733['attrs'][0x0][_0x099a('0x45')]:undefined)||_0x099a('0x50')},{'name':'attrVoiceQueues','value':_0x2dd733[_0x099a('0x51')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x1]?_0x2dd733[_0x099a('0x44')][0x1][_0x099a('0x45')]:undefined)||[]},{'name':_0x099a('0x4e'),'value':_0x2dd733[_0x099a('0x4e')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x2]?_0x2dd733[_0x099a('0x44')][0x2]['value']:undefined)||0x14},{'name':_0x099a('0x52'),'value':_0x2dd733['attrChannel']||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x3]?_0x2dd733[_0x099a('0x44')][0x3][_0x099a('0x45')]:undefined)||_0x099a('0x53')},{'name':_0x099a('0x54'),'value':_0x2dd733[_0x099a('0x54')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x4]?_0x2dd733[_0x099a('0x44')][0x4]['value']:undefined)||''},{'name':_0x099a('0x55'),'value':_0x2dd733[_0x099a('0x55')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733['attrs'][0x5]?_0x2dd733[_0x099a('0x44')][0x5][_0x099a('0x45')]:undefined)||''},{'name':_0x099a('0x56'),'value':_0x2dd733[_0x099a('0x56')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x6]?_0x2dd733['attrs'][0x6][_0x099a('0x45')]:undefined)||''},{'name':_0x099a('0x57'),'value':_0x2dd733['attrOpenchannelAccounts']||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x7]?_0x2dd733[_0x099a('0x44')][0x7][_0x099a('0x45')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x2dd733[_0x099a('0x58')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x8]?_0x2dd733['attrs'][0x8][_0x099a('0x45')]:undefined)||''},{'name':'attrChatWebsites','value':_0x2dd733['attrChatWebsites']||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733['attrs'][0x9]?_0x2dd733['attrs'][0x9][_0x099a('0x45')]:undefined)||''}];case _0x099a('0x59'):case'pie-chart':return[{'name':_0x099a('0x5a'),'value':_0x2dd733[_0x099a('0x5a')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733['attrs'][0x0]?_0x2dd733[_0x099a('0x44')][0x0][_0x099a('0x45')]:undefined)||_0x099a('0x50')},{'name':'attrSerie2','value':_0x2dd733[_0x099a('0x5b')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x1]?_0x2dd733[_0x099a('0x44')][0x1][_0x099a('0x45')]:undefined)||null},{'name':_0x099a('0x5c'),'value':_0x2dd733[_0x099a('0x5c')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x2]?_0x2dd733['attrs'][0x2][_0x099a('0x45')]:undefined)||null},{'name':_0x099a('0x51'),'value':_0x2dd733[_0x099a('0x51')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x3]?_0x2dd733['attrs'][0x3][_0x099a('0x45')]:undefined)||[]},{'name':'attrChannel','value':_0x2dd733[_0x099a('0x52')]||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x4]?_0x2dd733['attrs'][0x4][_0x099a('0x45')]:undefined)||_0x099a('0x53')},{'name':_0x099a('0x54'),'value':_0x2dd733[_0x099a('0x54')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x5]?_0x2dd733[_0x099a('0x44')][0x5][_0x099a('0x45')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x2dd733[_0x099a('0x55')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x6]?_0x2dd733[_0x099a('0x44')][0x6][_0x099a('0x45')]:undefined)||''},{'name':_0x099a('0x56'),'value':_0x2dd733[_0x099a('0x56')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x7]?_0x2dd733['attrs'][0x7][_0x099a('0x45')]:undefined)||''},{'name':_0x099a('0x57'),'value':_0x2dd733[_0x099a('0x57')]||(_0x2dd733['attrs']&&_0x2dd733['attrs'][0x8]?_0x2dd733['attrs'][0x8][_0x099a('0x45')]:undefined)||''},{'name':_0x099a('0x58'),'value':_0x2dd733['attrWhatsappAccounts']||(_0x2dd733['attrs']&&_0x2dd733[_0x099a('0x44')][0x9]?_0x2dd733['attrs'][0x9][_0x099a('0x45')]:undefined)||''},{'name':'attrChatWebsites','value':_0x2dd733[_0x099a('0x5d')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0xa]?_0x2dd733[_0x099a('0x44')][0xa]['value']:undefined)||''}];case _0x099a('0x5e'):return[{'name':_0x099a('0x5f'),'type':_0x2dd733[_0x099a('0x60')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733[_0x099a('0x44')][0x0]['type']:undefined)||null,'value':_0x2dd733['attrReport']||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733[_0x099a('0x44')][0x0]?_0x2dd733[_0x099a('0x44')][0x0][_0x099a('0x45')]:undefined)||null},{'name':'attrRefresh','value':_0x2dd733[_0x099a('0x61')]||(_0x2dd733[_0x099a('0x44')]&&_0x2dd733['attrs'][0x1]?_0x2dd733[_0x099a('0x44')][0x1][_0x099a('0x45')]:undefined)||0x0}];default:return[];}}catch(_0x411b60){logger[_0x099a('0x2d')](_0x099a('0x62'),JSON['stringify'](_0x411b60));return[];}}exports[_0x099a('0x63')]=function(_0x17b936,_0x5c4f19){if(_0x17b936[_0x099a('0x64')]){_0x17b936[_0x099a('0x64')][_0x099a('0x44')]=widgetAttributes(_0x17b936[_0x099a('0x64')]);}return db[_0x099a('0x35')][_0x099a('0x63')](_0x17b936[_0x099a('0x64')],{})['then'](respondWithResult(_0x5c4f19,0xc9))[_0x099a('0x65')](handleError(_0x5c4f19,null));};exports[_0x099a('0x2a')]=function(_0x369f0c,_0x40e774){if(_0x369f0c[_0x099a('0x64')]['id']){delete _0x369f0c[_0x099a('0x64')]['id'];}_0x369f0c[_0x099a('0x64')][_0x099a('0x44')]=widgetAttributes(_0x369f0c[_0x099a('0x64')]);return db[_0x099a('0x35')][_0x099a('0x40')]({'where':{'id':_0x369f0c[_0x099a('0x32')]['id']}})[_0x099a('0x2b')](handleEntityNotFound(_0x40e774,null))['then'](saveUpdates(_0x369f0c[_0x099a('0x64')],null))[_0x099a('0x2b')](respondWithResult(_0x40e774,null))['catch'](handleError(_0x40e774,null));};