|
|
@@ -4,9 +4,11 @@ var slug = require('slug');
|
|
|
var beautify = require("json-beautify");
|
|
|
var _ = require('lodash');
|
|
|
var fs = require('fs');
|
|
|
+var Promise = require('bluebird');
|
|
|
var app = express();
|
|
|
var examplesJSON = __dirname + '/exemples/liste.json';
|
|
|
var examples = require(examplesJSON);
|
|
|
+Promise.promisifyAll(fs);
|
|
|
|
|
|
app.use(express.static(__dirname));
|
|
|
app.use(bodyParser.json());
|
|
|
@@ -14,7 +16,7 @@ app.use(bodyParser.urlencoded({ extended: true }));
|
|
|
|
|
|
function addExample(slug, title) {
|
|
|
examples.push({ slug: slug, title: title });
|
|
|
- fs.writeFileSync(examplesJSON, beautify(examples, null, 2, 100));
|
|
|
+ return fs.writeFileAsync(examplesJSON, beautify(examples, null, 2, 100));
|
|
|
}
|
|
|
|
|
|
app.post('/examples', function(req, res) {
|
|
|
@@ -29,11 +31,16 @@ app.post('/examples', function(req, res) {
|
|
|
var exampleSlug = slug(req.body.title.toLowerCase());
|
|
|
var targetDir = __dirname + '/exemples/' + exampleSlug;
|
|
|
|
|
|
- fs.mkdirSync(targetDir);
|
|
|
- fs.writeFileSync(targetDir + '/contenu.html', '');
|
|
|
- fs.writeFileSync(targetDir + '/script.js', '');
|
|
|
- addExample(exampleSlug, title);
|
|
|
- res.json({ slug: exampleSlug, title: title });
|
|
|
+ fs.mkdirAsync(targetDir)
|
|
|
+ .then(() => Promise.map(
|
|
|
+ ['contenu.html', 'script.js'], f => fs.writeFileAsync(targetDir + '/' + f, '')
|
|
|
+ ))
|
|
|
+ .then(files => addExample(exampleSlug, title))
|
|
|
+ .then(() => res.json({ slug: exampleSlug, title: title }));
|
|
|
+});
|
|
|
+
|
|
|
+app.get('/examples/:slug', function(req, res) {
|
|
|
+
|
|
|
});
|
|
|
|
|
|
app.put('/examples/:slug', function(req, res) {
|