From f5a60a5138135a3412dfbcfd6e564f7aa47a55c2 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 6 Nov 2015 17:34:15 +0100 Subject: Add API versionning --- routes/api/v1/videos.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 routes/api/v1/videos.js (limited to 'routes/api/v1/videos.js') diff --git a/routes/api/v1/videos.js b/routes/api/v1/videos.js new file mode 100644 index 000000000..246620ac6 --- /dev/null +++ b/routes/api/v1/videos.js @@ -0,0 +1,61 @@ +;(function () { + 'use strict' + + var express = require('express') + var router = express.Router() + var middleware = require('../../../middlewares') + var videos = require('../../../src/videos') + + function listVideos (req, res, next) { + videos.list(function (err, videos_list) { + if (err) return next(err) + + res.json(videos_list) + }) + } + + function searchVideos (req, res, next) { + videos.search(req.params.name, function (err, videos_list) { + if (err) return next(err) + + res.json(videos_list) + }) + } + + function addVideos (req, res, next) { + videos.add({ video: req.files.input_video, data: req.body }, function (err) { + if (err) return next(err) + + // TODO : include Location of the new video + res.sendStatus(201) + }) + } + + function getVideos (req, res, next) { + videos.get(req.params.id, function (err, video) { + if (err) return next(err) + + if (video === null) { + return res.sendStatus(404) + } + + res.json(video) + }) + } + + function removeVideo (req, res, next) { + videos.remove(req.params.id, function (err) { + if (err) return next(err) + + res.sendStatus(204) + }) + } + + router.get('/', middleware.cache(false), listVideos) + router.post('/', middleware.cache(false), addVideos) + router.get('/search/:name', middleware.cache(false), searchVideos) + router.get('/:id', middleware.cache(false), getVideos) + router.delete('/:id', middleware.cache(false), removeVideo) + + module.exports = router +})() -- cgit v1.2.3