|
| 1 | +'use strict'; |
| 2 | + |
| 3 | +const eachAsync = require('each-async'); |
| 4 | + |
1 | 5 | module.exports.conf = {
|
2 | 6 | API_KEY: process.env.NTB_API_KEY,
|
3 | 7 | API_ENV: process.env.NTB_API_ENV || 'api',
|
4 |
| - USER_AGENT: process.env.NTB_USER_AGENT || require('./package.json').version |
| 8 | + USER_AGENT: process.env.NTB_USER_AGENT || require('./package.json').version, |
5 | 9 | };
|
6 | 10 |
|
7 |
| -module.exports._requestDefaults = function() { |
| 11 | +module.exports._requestDefaults = function reqestDefaults() { |
8 | 12 | return require('request').defaults({
|
9 | 13 | baseUrl: 'http://' + module.exports.conf.API_ENV + '.nasjonalturbase.no/',
|
10 | 14 | headers: {
|
11 |
| - 'user-agent': module.exports.conf.USER_AGENT |
| 15 | + 'user-agent': module.exports.conf.USER_AGENT, |
12 | 16 | },
|
13 | 17 | json: true,
|
14 | 18 | qs: {
|
15 |
| - api_key: module.exports.conf.API_KEY |
16 |
| - } |
| 19 | + api_key: module.exports.conf.API_KEY, |
| 20 | + }, |
17 | 21 | });
|
18 | 22 | };
|
19 | 23 |
|
20 |
| -var request = module.exports._requestDefaults(); |
21 |
| -var eachAsync = require('each-async'); |
| 24 | +let request = module.exports._requestDefaults(); |
22 | 25 |
|
23 | 26 | [
|
24 | 27 | 'aktiviteter',
|
25 | 28 | 'bilder',
|
26 | 29 | 'grupper',
|
27 | 30 | 'områder',
|
28 | 31 | 'steder',
|
29 |
| - 'turer' |
30 |
| -].forEach(function(type) { |
31 |
| - module.exports[type] = function(params, callback) { |
32 |
| - if (!callback) { return request.get({url: encodeURIComponent(type), qs: params}); } |
33 |
| - request.get({url: encodeURIComponent(type), qs: params}, callback); |
| 32 | + 'turer', |
| 33 | +].forEach(function typeForEach(type) { |
| 34 | + module.exports[type] = function typeAll(params, callback) { |
| 35 | + if (!callback) { return request.get({ url: encodeURIComponent(type), qs: params }); } |
| 36 | + request.get({ url: encodeURIComponent(type), qs: params }, callback); |
34 | 37 | };
|
35 | 38 |
|
36 |
| - module.exports[type].each = function(params, callback, done) { |
37 |
| - params.skip = params.skip || 0; |
38 |
| - params.limit = params.limit || 50; |
| 39 | + module.exports[type].each = function typeEach(params, callback, done) { |
| 40 | + const query = params; |
| 41 | + |
| 42 | + query.skip = query.skip || 0; |
| 43 | + query.limit = query.limit || 50; |
39 | 44 |
|
40 |
| - module.exports[type](params, function(err, res, body) { |
41 |
| - eachAsync(body.documents, callback, function(err) { |
42 |
| - if (err) { return done(err); } |
| 45 | + module.exports[type](query, function typeCb(typeErr, res, body) { |
| 46 | + if (typeErr) { return done(typeErr); } |
43 | 47 |
|
44 |
| - if (body.documents < params.limit) { |
| 48 | + eachAsync(body.documents, callback, function eachAsyncDone(eachErr) { |
| 49 | + if (eachErr) { return done(eachErr); } |
| 50 | + |
| 51 | + if (body.documents < query.limit) { |
45 | 52 | return done(null);
|
46 | 53 | }
|
47 | 54 |
|
48 |
| - params.skip += params.limit; |
49 |
| - module.exports[type].each(params, callback, done); |
| 55 | + query.skip += query.limit; |
| 56 | + module.exports[type].each(query, callback, done); |
50 | 57 | });
|
51 | 58 | });
|
52 | 59 | };
|
53 | 60 |
|
54 |
| - module.exports[type].post = function(data, callback) { |
55 |
| - if (!callback) { return request.post({url: encodeURIComponent(type), body: data}); } |
56 |
| - request.post({url: encodeURIComponent(type), body: data}, callback); |
| 61 | + module.exports[type].post = function typePost(data, callback) { |
| 62 | + if (!callback) { |
| 63 | + return request.post({ url: encodeURIComponent(type), body: data }); |
| 64 | + } |
| 65 | + |
| 66 | + request.post({ url: encodeURIComponent(type), body: data }, callback); |
57 | 67 | };
|
58 | 68 |
|
59 |
| - module.exports[type].get = function(id, callback) { |
60 |
| - if (!callback) { return request.get({url: encodeURIComponent(type) + '/' + id}); } |
61 |
| - request.get({url: encodeURIComponent(type) + '/' + id}, callback); |
| 69 | + module.exports[type].get = function typeGet(id, callback) { |
| 70 | + if (!callback) { |
| 71 | + return request.get({ url: encodeURIComponent(type) + '/' + id }); |
| 72 | + } |
| 73 | + |
| 74 | + request.get({ url: encodeURIComponent(type) + '/' + id }, callback); |
62 | 75 | };
|
63 | 76 |
|
64 |
| - module.exports[type].delete = function(id, callback) { |
65 |
| - if (!callback) { return request.del({url: encodeURIComponent(type) + '/' + id}); } |
66 |
| - request.del({url: encodeURIComponent(type) + '/' + id}, callback); |
| 77 | + module.exports[type].delete = function typeDelete(id, callback) { |
| 78 | + if (!callback) { |
| 79 | + return request.del({ url: encodeURIComponent(type) + '/' + id }); |
| 80 | + } |
| 81 | + |
| 82 | + request.del({ url: encodeURIComponent(type) + '/' + id }, callback); |
67 | 83 | };
|
68 | 84 |
|
69 |
| - module.exports[type].put = function(id, data, callback) { |
70 |
| - if (!callback) { return request.put({url: encodeURIComponent(type) + '/' + id, body: data}); } |
71 |
| - request.put({url: encodeURIComponent(type) + '/' + id, body: data}, callback); |
| 85 | + module.exports[type].put = function typePut(id, data, callback) { |
| 86 | + if (!callback) { |
| 87 | + return request.put({ url: encodeURIComponent(type) + '/' + id, body: data }); |
| 88 | + } |
| 89 | + |
| 90 | + request.put({ url: encodeURIComponent(type) + '/' + id, body: data }, callback); |
72 | 91 | };
|
73 | 92 |
|
74 |
| - module.exports[type].patch = function(id, data, callback) { |
75 |
| - if (!callback) { return request.patch({url: encodeURIComponent(type) + '/' + id, body: data}); } |
76 |
| - request.patch({url: encodeURIComponent(type) + '/' + id, body: data}, callback); |
| 93 | + module.exports[type].patch = function typePatch(id, data, callback) { |
| 94 | + if (!callback) { |
| 95 | + return request.patch({ url: encodeURIComponent(type) + '/' + id, body: data }); |
| 96 | + } |
| 97 | + |
| 98 | + request.patch({ url: encodeURIComponent(type) + '/' + id, body: data }, callback); |
77 | 99 | };
|
78 | 100 | });
|
79 | 101 |
|
80 |
| -module.exports.configure = function(obj) { |
81 |
| - for (var key in obj) { |
| 102 | +module.exports.configure = function configure(obj) { |
| 103 | + Object.keys(obj).forEach(function objKeysForEach(key) { |
82 | 104 | module.exports.conf[key] = obj[key];
|
83 |
| - } |
| 105 | + }); |
84 | 106 |
|
85 | 107 | // Generate a new request object
|
86 | 108 | request = module.exports._requestDefaults();
|
|
0 commit comments