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/index.js | 10 +++++++ routes/api/v1/pods.js | 38 +++++++++++++++++++++++++++ routes/api/v1/remoteVideos.js | 29 ++++++++++++++++++++ routes/api/v1/videos.js | 61 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 routes/api/v1/index.js create mode 100644 routes/api/v1/pods.js create mode 100644 routes/api/v1/remoteVideos.js create mode 100644 routes/api/v1/videos.js (limited to 'routes/api/v1') diff --git a/routes/api/v1/index.js b/routes/api/v1/index.js new file mode 100644 index 000000000..9a4ec8438 --- /dev/null +++ b/routes/api/v1/index.js @@ -0,0 +1,10 @@ +;(function () { + 'use strict' + + var api = {} + api.videos = require('./videos') + api.remoteVideos = require('./remoteVideos') + api.pods = require('./pods') + + module.exports = api +})() diff --git a/routes/api/v1/pods.js b/routes/api/v1/pods.js new file mode 100644 index 000000000..961388fcb --- /dev/null +++ b/routes/api/v1/pods.js @@ -0,0 +1,38 @@ +;(function () { + 'use strict' + + var express = require('express') + var router = express.Router() + var middleware = require('../../../middlewares') + var pods = require('../../../src/pods') + + function listPods (req, res, next) { + pods.list(function (err, pods_list) { + if (err) return next(err) + + res.json(pods_list) + }) + } + + function addPods (req, res, next) { + pods.add(req.body.data, function (err, json) { + if (err) return next(err) + + res.json(json) + }) + } + + function makeFriends (req, res, next) { + pods.makeFriends(function (err) { + if (err) return next(err) + + res.sendStatus(204) + }) + } + + router.get('/', middleware.cache(false), listPods) + router.get('/makefriends', middleware.cache(false), makeFriends) + router.post('/', middleware.cache(false), addPods) + + module.exports = router +})() diff --git a/routes/api/v1/remoteVideos.js b/routes/api/v1/remoteVideos.js new file mode 100644 index 000000000..88b8e879b --- /dev/null +++ b/routes/api/v1/remoteVideos.js @@ -0,0 +1,29 @@ +;(function () { + 'use strict' + + var express = require('express') + var router = express.Router() + var middleware = require('../../../middlewares') + var videos = require('../../../src/videos') + + function addRemoteVideos (req, res, next) { + videos.addRemote(req.body.data, function (err, video) { + if (err) return next(err) + + res.json(video) + }) + } + + function removeRemoteVideo (req, res, next) { + videos.removeRemote(req.body.signature.url, req.body.data.magnetUri, function (err) { + if (err) return next(err) + + res.status(204) + }) + } + + router.post('/add', middleware.cache(false), middleware.decryptBody, addRemoteVideos) + router.post('/remove', middleware.cache(false), middleware.decryptBody, removeRemoteVideo) + + module.exports = router +})() 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