From 2d1e678aa639f385a7d3136f16b84251fdfb0f51 Mon Sep 17 00:00:00 2001 From: Buddy Sandidge Date: Sun, 15 Feb 2015 19:57:19 -0800 Subject: [PATCH] Add slides api endpoint --- bin/deck | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/bin/deck b/bin/deck index 01accc7..6146530 100755 --- a/bin/deck +++ b/bin/deck @@ -61,6 +61,42 @@ function serveIfExists(path) { }; } +app.get('/slides', function showHandler(req, res) { + fs.readdir(pathToFile('data', 'slide'), function (err, files) { + files.sort(); + var jsonFiles = _.filter(files, function (file) { + return /^\d+.json$/.test(file); + }); + + var getJsonFiles = _.map(jsonFiles, function (file) { + return function (cb) { + var serve = serveIfExists(pathToFile('data', 'slide', file)); + serve(function (err, content) { + if (err) { + cb(err, null); + return; + } + try { + var json = JSON.parse(content); + } catch (err) { + cb(err, null); + return; + } + cb(null, json); + }); + }; + }); + + async.parallel(getJsonFiles, function (err, slideContent) { + if (err) { + renderError(res, err); + return; + } + res.send(slideContent); + }); + }); +}); + app.get(/slide\/(\d+)/, function showHandler(req, res, next) { var slideId = req.params[0]; var slidePath = pathToFile('data', 'slide', slideId + '.json');