bd52bf303c11ed04a3615890cd6c364fb717a9de
[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 _0xa07c=['undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','contact','message','agent','interaction','params','model','DashboardItem','rawAttributes','query','filters','fields','attributes','includeAll','merge','find','catch','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','type','attrRefresh','widgetAttributes:\x20%s','stringify','body','eml-format','rimraf','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit'];(function(_0x38ae7f,_0x720574){var _0x484569=function(_0x156c5f){while(--_0x156c5f){_0x38ae7f['push'](_0x38ae7f['shift']());}};_0x484569(++_0x720574);}(_0xa07c,0xf6));var _0xca07=function(_0x601052,_0x574cc7){_0x601052=_0x601052-0x0;var _0x427520=_0xa07c[_0x601052];return _0x427520;};'use strict';var emlformat=require(_0xca07('0x0'));var rimraf=require(_0xca07('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xca07('0x2'));var moment=require(_0xca07('0x3'));var BPromise=require(_0xca07('0x4'));var Mustache=require('mustache');var util=require(_0xca07('0x5'));var path=require('path');var sox=require(_0xca07('0x6'));var csv=require(_0xca07('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xca07('0x8'));var _=require(_0xca07('0x9'));var squel=require(_0xca07('0xa'));var crypto=require(_0xca07('0xb'));var jsforce=require(_0xca07('0xc'));var deskjs=require(_0xca07('0xd'));var toCsv=require('to-csv');var querystring=require(_0xca07('0xe'));var Papa=require(_0xca07('0xf'));var Redis=require(_0xca07('0x10'));var authService=require(_0xca07('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xca07('0x12'));var hardwareService=require(_0xca07('0x13'));var logger=require(_0xca07('0x14'))(_0xca07('0x15'));var utils=require(_0xca07('0x16'));var config=require(_0xca07('0x17'));var licenseUtil=require(_0xca07('0x18'));var db=require('../../mysqldb')['db'];config[_0xca07('0x19')]=_[_0xca07('0x1a')](config[_0xca07('0x19')],{'host':_0xca07('0x1b'),'port':0x18eb});var socket=require(_0xca07('0x1c'))(new Redis(config[_0xca07('0x19')]));require('./dashboardItem.socket')[_0xca07('0x1d')](socket);function respondWithStatusCode(_0x5ec730,_0x26c393){_0x26c393=_0x26c393||0xcc;return function(_0x4e4810){if(_0x4e4810){return _0x5ec730[_0xca07('0x1e')](_0x26c393);}return _0x5ec730[_0xca07('0x1f')](_0x26c393)[_0xca07('0x20')]();};}function respondWithResult(_0x43e32d,_0x3247d1){_0x3247d1=_0x3247d1||0xc8;return function(_0x1064b4){if(_0x1064b4){return _0x43e32d[_0xca07('0x1f')](_0x3247d1)[_0xca07('0x21')](_0x1064b4);}};}function respondWithFilteredResult(_0x1b65e0,_0x3b0c2){return function(_0x11a6f0){if(_0x11a6f0){var _0x8b2766=typeof _0x3b0c2[_0xca07('0x22')]==='undefined'&&typeof _0x3b0c2[_0xca07('0x23')]===_0xca07('0x24');var _0x21c135=_0x11a6f0[_0xca07('0x25')];var _0x47e372=_0x8b2766?0x0:_0x3b0c2[_0xca07('0x22')];var _0x199ae7=_0x8b2766?_0x11a6f0[_0xca07('0x25')]:_0x3b0c2[_0xca07('0x22')]+_0x3b0c2[_0xca07('0x23')];var _0x32379f;if(_0x199ae7>=_0x21c135){_0x199ae7=_0x21c135;_0x32379f=0xc8;}else{_0x32379f=0xce;}_0x1b65e0[_0xca07('0x1f')](_0x32379f);return _0x1b65e0[_0xca07('0x26')](_0xca07('0x27'),_0x47e372+'-'+_0x199ae7+'/'+_0x21c135)[_0xca07('0x21')](_0x11a6f0);}return null;};}function patchUpdates(_0x10b4de){return function(_0x2dfd0f){try{jsonpatch[_0xca07('0x28')](_0x2dfd0f,_0x10b4de,!![]);}catch(_0x1bb067){return BPromise[_0xca07('0x29')](_0x1bb067);}return _0x2dfd0f[_0xca07('0x2a')]();};}function saveUpdates(_0x2de9ee,_0x35228c){return function(_0x4d2708){if(_0x4d2708){return _0x4d2708[_0xca07('0x2b')](_0x2de9ee)[_0xca07('0x2c')](function(_0x4fde7d){return _0x4fde7d;});}return null;};}function removeEntity(_0x12fbbe,_0x35ee03){return function(_0x4a3198){if(_0x4a3198){return _0x4a3198[_0xca07('0x2d')]()[_0xca07('0x2c')](function(){_0x12fbbe[_0xca07('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a596c,_0x21ec27){return function(_0x39737e){if(!_0x39737e){_0x5a596c[_0xca07('0x1e')](0x194);}return _0x39737e;};}function handleError(_0x47ee9f,_0x5c94fb){_0x5c94fb=_0x5c94fb||0x1f4;return function(_0x520548){logger[_0xca07('0x2e')](_0x520548[_0xca07('0x2f')]);if(_0x520548[_0xca07('0x30')]){delete _0x520548[_0xca07('0x30')];}_0x47ee9f[_0xca07('0x1f')](_0x5c94fb)['send'](_0x520548);};}function getMustacheRender(_0x4adfb9,_0x516107){return Mustache['render'](_0x4adfb9,_['merge'](_0x516107['body'],{'contact':_0x516107[_0xca07('0x31')],'message':_0x516107[_0xca07('0x32')],'agent':_0x516107[_0xca07('0x33')],'interaction':_0x516107[_0xca07('0x34')],'account':_0x516107['account']}))||'';}exports['show']=function(_0x364d65,_0x414961){var _0x5d1fd3={'raw':![],'where':{'id':_0x364d65[_0xca07('0x35')]['id']}},_0x3fc278={};_0x3fc278[_0xca07('0x36')]=_['keys'](db[_0xca07('0x37')][_0xca07('0x38')]);_0x3fc278['query']=_['keys'](_0x364d65[_0xca07('0x39')]);_0x3fc278[_0xca07('0x3a')]=_['intersection'](_0x3fc278[_0xca07('0x36')],_0x3fc278['query']);_0x5d1fd3['attributes']=_['intersection'](_0x3fc278[_0xca07('0x36')],qs[_0xca07('0x3b')](_0x364d65[_0xca07('0x39')][_0xca07('0x3b')]));_0x5d1fd3['attributes']=_0x5d1fd3[_0xca07('0x3c')]['length']?_0x5d1fd3['attributes']:_0x3fc278[_0xca07('0x36')];if(_0x364d65['query'][_0xca07('0x3d')]){_0x5d1fd3['include']=[{'all':!![]}];}_0x5d1fd3=_[_0xca07('0x3e')]({},_0x5d1fd3,_0x364d65['options']);return db[_0xca07('0x37')][_0xca07('0x3f')](_0x5d1fd3)['then'](handleEntityNotFound(_0x414961,null))['then'](respondWithResult(_0x414961,null))[_0xca07('0x40')](handleError(_0x414961,null));};exports[_0xca07('0x2d')]=function(_0x477b0e,_0x376017){return db[_0xca07('0x37')][_0xca07('0x3f')]({'where':{'id':_0x477b0e[_0xca07('0x35')]['id']}})['then'](handleEntityNotFound(_0x376017,null))[_0xca07('0x2c')](removeEntity(_0x376017,null))[_0xca07('0x40')](handleError(_0x376017,null));};function widgetAttributes(_0x284f93){try{switch(_0x284f93['type']){case _0xca07('0x41'):return[{'name':_0xca07('0x42'),'value':_0x284f93['attrUrl']||(_0x284f93[_0xca07('0x43')]&&_0x284f93['attrs'][0x0]?_0x284f93[_0xca07('0x43')][0x0][_0xca07('0x44')]:undefined)||'https://'}];case _0xca07('0x45'):return[{'name':_0xca07('0x46'),'value':_0x284f93[_0xca07('0x46')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x0]?_0x284f93[_0xca07('0x43')][0x0][_0xca07('0x44')]:undefined)||''}];case _0xca07('0x47'):return[{'name':_0xca07('0x48'),'value':_0x284f93[_0xca07('0x48')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x0]?_0x284f93[_0xca07('0x43')][0x0]['value']:undefined)||_0xca07('0x49')},{'name':_0xca07('0x4a'),'value':_0x284f93[_0xca07('0x4a')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x1]?_0x284f93[_0xca07('0x43')][0x1]['value']:undefined)||_0xca07('0x4b')},{'name':_0xca07('0x4c'),'value':_0x284f93[_0xca07('0x4c')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x2]?_0x284f93[_0xca07('0x43')][0x2][_0xca07('0x44')]:undefined)||0xc}];case _0xca07('0x4d'):return[{'name':_0xca07('0x4e'),'value':_0x284f93[_0xca07('0x4e')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x0]?_0x284f93[_0xca07('0x43')][0x0]['value']:undefined)||_0xca07('0x4f')},{'name':_0xca07('0x50'),'value':_0x284f93[_0xca07('0x50')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x1]?_0x284f93[_0xca07('0x43')][0x1][_0xca07('0x44')]:undefined)||[]},{'name':'attrFontSize','value':_0x284f93[_0xca07('0x4c')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93['attrs'][0x2]?_0x284f93[_0xca07('0x43')][0x2][_0xca07('0x44')]:undefined)||0x14}];case _0xca07('0x51'):case _0xca07('0x52'):return[{'name':'attrSerie1','value':_0x284f93[_0xca07('0x53')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93['attrs'][0x0]?_0x284f93[_0xca07('0x43')][0x0][_0xca07('0x44')]:undefined)||'total'},{'name':'attrSerie2','value':_0x284f93[_0xca07('0x54')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93['attrs'][0x1]?_0x284f93[_0xca07('0x43')][0x1][_0xca07('0x44')]:undefined)||null},{'name':_0xca07('0x55'),'value':_0x284f93['attrSerie3']||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x2]?_0x284f93[_0xca07('0x43')][0x2][_0xca07('0x44')]:undefined)||null},{'name':_0xca07('0x50'),'value':_0x284f93['attrVoiceQueues']||(_0x284f93['attrs']&&_0x284f93[_0xca07('0x43')][0x3]?_0x284f93[_0xca07('0x43')][0x3][_0xca07('0x44')]:undefined)||[]}];case _0xca07('0x56'):return[{'name':_0xca07('0x57'),'type':_0x284f93[_0xca07('0x58')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x0]?_0x284f93[_0xca07('0x43')][0x0][_0xca07('0x59')]:undefined)||null,'value':_0x284f93[_0xca07('0x57')]||(_0x284f93['attrs']&&_0x284f93['attrs'][0x0]?_0x284f93[_0xca07('0x43')][0x0][_0xca07('0x44')]:undefined)||null},{'name':_0xca07('0x5a'),'value':_0x284f93[_0xca07('0x5a')]||(_0x284f93[_0xca07('0x43')]&&_0x284f93[_0xca07('0x43')][0x1]?_0x284f93[_0xca07('0x43')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x29406a){logger[_0xca07('0x2e')](_0xca07('0x5b'),JSON[_0xca07('0x5c')](_0x29406a));return[];}}exports['create']=function(_0x2c9936,_0x10c296){if(_0x2c9936[_0xca07('0x5d')]){_0x2c9936['body']['attrs']=widgetAttributes(_0x2c9936[_0xca07('0x5d')]);}return db['DashboardItem']['create'](_0x2c9936['body'],{})['then'](respondWithResult(_0x10c296,0xc9))[_0xca07('0x40')](handleError(_0x10c296,null));};exports[_0xca07('0x2b')]=function(_0x5ead78,_0xd062b){if(_0x5ead78[_0xca07('0x5d')]['id']){delete _0x5ead78[_0xca07('0x5d')]['id'];}_0x5ead78[_0xca07('0x5d')][_0xca07('0x43')]=widgetAttributes(_0x5ead78[_0xca07('0x5d')]);return db['DashboardItem'][_0xca07('0x3f')]({'where':{'id':_0x5ead78[_0xca07('0x35')]['id']}})[_0xca07('0x2c')](handleEntityNotFound(_0xd062b,null))['then'](saveUpdates(_0x5ead78[_0xca07('0x5d')],null))['then'](respondWithResult(_0xd062b,null))[_0xca07('0x40')](handleError(_0xd062b,null));};