UNPKG

@jorsek/ezd-client

Version:
75 lines (57 loc) 1.82 kB
'use strict'; 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;