1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | var
|
14 | url = require('url'),
|
15 | connector = require('../connectors/connector');
|
16 |
|
17 | var list = function (persist) {
|
18 | var datasources = [];
|
19 | _.each(joola.config.integration.datasources, function (ds) {
|
20 | datasources.push(ds);
|
21 | });
|
22 |
|
23 | if (persist)
|
24 | return datasources;
|
25 | else
|
26 | return ce.clone(datasources);
|
27 | };
|
28 |
|
29 | var get = function (datasourceid, persist) {
|
30 | var datasource = _.find(list(false), function (ds) {
|
31 |
|
32 | return ds.id.toLowerCase() == datasourceid.toLowerCase();
|
33 | });
|
34 |
|
35 | if (!datasource)
|
36 | return null;
|
37 |
|
38 | if (persist)
|
39 | return datasource;
|
40 | else
|
41 | return ce.clone(datasource);
|
42 | };
|
43 |
|
44 | var validate = function (datasourceid, callback) {
|
45 | var datasource = get(datasourceid);
|
46 | var query = connector.createQuery();
|
47 |
|
48 | query.sql = 'SELECT 1;';
|
49 | query.limit = 1;
|
50 | query.datasource = datasource;
|
51 | connector.executeQuery(query, function (query, rows, fields, err) {
|
52 | if (err)
|
53 | return callback(err);
|
54 |
|
55 | return callback(null, true);
|
56 | });
|
57 | };
|
58 |
|
59 | exports.list = list;
|
60 | exports.get = get;
|
61 | exports.validate = validate;
|