arrow-admin
Version:
Arrow Admin Website
58 lines (48 loc) • 1.32 kB
JavaScript
var _ = require('lodash'),
fs = require('fs'),
path = require('path'),
mkdirp = require('mkdirp'),
util = require('../util');
function configure(arrow, app, config, prefix) {
var token = String(Date.now());
if (config.env === 'development') {
// re-generate the token when restarted
arrow.on('stopped', function () {
token = String(Date.now());
});
app.get(prefix + '/generate/token/:token', function (req, resp, next) {
return resp.json({
// if the same token is passed back, we haven't yet restarted
// if it's different, we're good
success: req.params.token !== token
});
});
app.post(prefix + '/generate/model/:name', function (req, resp, next) {
var filename = util.generateModelName(config, req.params.name),
dirname = path.dirname(filename);
mkdirp(dirname, function (err) {
if (err) {
return util.json(resp, {
success: false,
message: err.message
});
}
fs.writeFile(filename, req.body, function (err) {
if (err) {
return util.json(resp, {
success: false,
message: err.message
});
} else {
// send back the started timestamp as a token
return util.json(resp, {
success: true,
token: token
});
}
});
});
});
}
}
exports.configure = configure;