UNPKG

2.03 kBJavaScriptView Raw
1/**
2 * joola.io
3 *
4 * Copyright Joola Smart Solutions, Ltd. <info@joo.la>
5 *
6 * Licensed under GNU General Public License 3.0 or later.
7 * Some rights reserved. See LICENSE, AUTHORS.
8 *
9 * @license GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
10 */
11
12var
13 url = require('url'),
14
15 _datatables = require('./datatables'),
16 connector = require('../connectors/connector');
17
18var list = function (datasourceid, datatableid) {
19 //var _self = this;
20
21 var dimensions = [];
22 var datatables = [];
23
24 //if (_list)
25 // return _list;
26
27 if (datatableid)
28 datatables.push(_datatables.get(datatableid));
29 else
30 datatables = _datatables.list(datasourceid);
31
32 _.each(datatables, function (dt) {
33 _.each(dt.dimensions, function (d) {
34 d.datatableid = dt.id;
35
36 //if (!d.name)
37 // d = get(d.id);
38 //cache by id
39 // _get[d.id] = d;
40
41 //cache by name
42 // _getByName[d.name] = d;
43
44 dimensions.push(d);
45 })
46 });
47
48 if (!datasourceid && !datatableid) {
49 _.each(joola.config.integration.dimensions, function (d) {
50 d.class = 'calculated';
51 dimensions.push(d);
52 });
53 }
54
55 //_list = ce.clone(dimensions);
56 return ce.clone(dimensions);
57};
58
59var _get = {};
60var get = function (dimensionid) {
61 var result;
62 var exist = _.find(_get, function (d) {
63 return d.id == dimensionid;
64 });
65 if (!exist) {
66 var dimensions = list();
67 result = ce.clone(_.find(dimensions, function (d) {
68 return d.id.toLowerCase() == dimensionid.toLowerCase();
69 }));
70 return result;
71 }
72 else {
73 result = ce.clone(exist);
74 return result;
75 }
76};
77
78var getByName = function (dimensionname) {
79 var _self = this;
80 var dimensions = list();
81
82 return ce.clone(_.find(dimensions, function (d) {
83 if (!d.name)
84 d = _self.get(d.id);
85
86 return d.name.toLowerCase() == dimensionname.toLowerCase();
87 }));
88};
89
90exports.list = list;
91exports.get = get;
92exports.getByName = getByName;
\No newline at end of file