1d562c8914
No Issue - Use Ghost version value that is already loaded instead of reading package.json from the filesystem and parsing it on every call into the configuration API.
65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
// # Configuration API
|
|
// RESTful API for browsing the configuration
|
|
var _ = require('lodash'),
|
|
config = require('../config'),
|
|
errors = require('../errors'),
|
|
Promise = require('bluebird'),
|
|
|
|
configuration;
|
|
|
|
function getValidKeys() {
|
|
var validKeys = {
|
|
fileStorage: config.fileStorage === false ? false : true,
|
|
apps: config.apps === true ? true : false,
|
|
tagsUI: config.tagsUI === true ? true : false,
|
|
version: config.ghostVersion,
|
|
environment: process.env.NODE_ENV,
|
|
database: config.database.client,
|
|
mail: _.isObject(config.mail) ? config.mail.transport : '',
|
|
blogUrl: config.url
|
|
};
|
|
|
|
return validKeys;
|
|
}
|
|
|
|
/**
|
|
* ## Configuration API Methods
|
|
*
|
|
* **See:** [API Methods](index.js.html#api%20methods)
|
|
*/
|
|
configuration = {
|
|
|
|
/**
|
|
* ### Browse
|
|
* Fetch all configuration keys
|
|
* @returns {Promise(Configurations)}
|
|
*/
|
|
browse: function browse() {
|
|
return Promise.resolve({configuration: _.map(getValidKeys(), function (value, key) {
|
|
return {
|
|
key: key,
|
|
value: value
|
|
};
|
|
})});
|
|
},
|
|
|
|
/**
|
|
* ### Read
|
|
*
|
|
*/
|
|
read: function read(options) {
|
|
var data = getValidKeys();
|
|
|
|
if (_.has(data, options.key)) {
|
|
return Promise.resolve({configuration: [{
|
|
key: options.key,
|
|
value: data[options.key]
|
|
}]});
|
|
} else {
|
|
return Promise.reject(new errors.NotFoundError('Invalid key'));
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = configuration;
|