|
@@ -48,7 +48,6 @@ app.use(bodyParser.urlencoded({ extended: true }));
|
|
|
app.use(getAcceptLanguage);
|
|
app.use(getAcceptLanguage);
|
|
|
|
|
|
|
|
function addExample(slug, title) {
|
|
function addExample(slug, title) {
|
|
|
- examples.push({ slug: slug, title: title });
|
|
|
|
|
return fs.writeFileAsync(examplesJSON, beautify(examples, null, 2, 100));
|
|
return fs.writeFileAsync(examplesJSON, beautify(examples, null, 2, 100));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -74,23 +73,28 @@ app.get('/:repoSlug', getIndexRepo);
|
|
|
*/
|
|
*/
|
|
|
app.get('/:repoSlug/:exampleSlug', getIndexExample);
|
|
app.get('/:repoSlug/:exampleSlug', getIndexExample);
|
|
|
|
|
|
|
|
-app.post('/examples', function(req, res) {
|
|
|
|
|
|
|
+app.post('/:repoSlug/examples', function(req, res) {
|
|
|
var title = req.body.title;
|
|
var title = req.body.title;
|
|
|
|
|
+ var { repoSlug } = req.params;
|
|
|
if(! req.body.title) {
|
|
if(! req.body.title) {
|
|
|
res.status(400).send('Le titre ne peut pas être vide !');
|
|
res.status(400).send('Le titre ne peut pas être vide !');
|
|
|
}
|
|
}
|
|
|
- var existingTitle = _.find(examples, { title: title });
|
|
|
|
|
|
|
+ var repo = exStore.getRepo(repoSlug);
|
|
|
|
|
+ if(! repo) {
|
|
|
|
|
+ res.status(404).send("Repo " + repoSlug + "not found");
|
|
|
|
|
+ }
|
|
|
|
|
+ var existingTitle = _.find(repo.examples, { title: title });
|
|
|
if(existingTitle) {
|
|
if(existingTitle) {
|
|
|
res.status(400).send("L'exemple '" + title + "' existe déjà !");
|
|
res.status(400).send("L'exemple '" + title + "' existe déjà !");
|
|
|
}
|
|
}
|
|
|
var exampleSlug = slug(req.body.title.toLowerCase());
|
|
var exampleSlug = slug(req.body.title.toLowerCase());
|
|
|
- var targetDir = __dirname + '/exemples/' + exampleSlug;
|
|
|
|
|
|
|
+ var targetDir = __dirname + '/exemples/' + repoSlug + '/' + exampleSlug;
|
|
|
|
|
|
|
|
fs.mkdirAsync(targetDir)
|
|
fs.mkdirAsync(targetDir)
|
|
|
.then(() => Promise.map(
|
|
.then(() => Promise.map(
|
|
|
['contenu.html', 'script.js'], f => fs.writeFileAsync(targetDir + '/' + f, '')
|
|
['contenu.html', 'script.js'], f => fs.writeFileAsync(targetDir + '/' + f, '')
|
|
|
))
|
|
))
|
|
|
- .then(files => addExample(exampleSlug, title))
|
|
|
|
|
|
|
+ .then(files => repo.examples.push({ slug: slug, title: title }))
|
|
|
.then(() => res.json({ slug: exampleSlug, title: title }));
|
|
.then(() => res.json({ slug: exampleSlug, title: title }));
|
|
|
});
|
|
});
|
|
|
|
|
|