@jorsek/ezd-client
Version:
75 lines (57 loc) • 1.82 kB
JavaScript
;
var EZD_CLIENT_VERSION = '0.1.0';
var axios = require('axios');
var resources = {
Config: require('./resources/Config'),
RootMap: require('./resources/RootMap'),
DitaMap: require('./resources/DitaMap'),
DitaTopic: require('./resources/DitaTopic')
}
function EZDClient(domain, rootMapId, timeout) {
if (!(this instanceof EZDClient)) {
return new EZDClient(domain, rootMapId, timeout);
}
if (!domain) {
throw 'easyDITA Domain not set';
}
// 3000ms timeout by default
var timeout = timeout || 3000;
var requestMethods = this._prepMethods(domain, rootMapId, timeout);
this._prepResources(requestMethods);
}
EZDClient.prototype = {
_prepResources: function(requestMethods) {
for (var name in resources) {
this[
name[0].toLowerCase() + name.substring(1)
] = new resources[name](requestMethods);
}
},
_prepMethods: function(domain, rootMapId, timeout) {
return {
get: function(url, options) {
var conn = axios.create({
baseURL: domain+'/db/portal/ezd-client/',
//baseURL: "https://my-json-server.typicode.com/pboz/mock-responses/",
timeout: timeout,
headers: {
'X-EZD-Client': 'JS/' + EZD_CLIENT_VERSION,
"Authorization" : "Basic YWRtaW46d2V3aWxscmlzZTg1"
}
});
var params = options.params || {};
// Add the rootMapId to the query string
params["rootMapId"] = rootMapId;
// Add api token to query string
//params.auth_token = apiToken;
// Append &test=1&preview=1 query strings
// if (testMode) {
// params.test = 1
// params.preview = 1
// }
return conn.get(url, {params: params})
}
}
}
}
module.exports = EZDClient;