/pictures und /audio endpoints moved under /poi
This commit is contained in:
+40
-27
@@ -7,7 +7,7 @@ import {
|
||||
} from '../services/routes-service.js';
|
||||
import {
|
||||
listPictures, getPicture, getPictureFile, createPicture, updatePicture, deletePicture,
|
||||
listAudio, getAudio, getAudioFile, createAudio, updateAudio, deleteAudio
|
||||
getAudio, getAudioFile, createAudio, updateAudio, deleteAudio
|
||||
} from '../services/media-service.js';
|
||||
|
||||
const numberOrUndefined = value => {
|
||||
@@ -90,41 +90,52 @@ export function createApiRouter(db) {
|
||||
res.json(updatePoi(db, Number(req.params.id), req.body));
|
||||
});
|
||||
|
||||
api.get('/routes/:id/pictures', (req, res) => {
|
||||
res.json({ pictures: listPictures(db, Number(req.params.id), { poiId: req.query.poiId }) });
|
||||
api.get('/routes/:routeId/pois/:poiId/pictures', (req, res) => {
|
||||
res.json({ pictures: listPictures(db, Number(req.params.routeId), Number(req.params.poiId)) });
|
||||
});
|
||||
|
||||
api.get('/routes/:id/pictures/:pictureId', (req, res) => {
|
||||
const routeId = Number(req.params.id);
|
||||
api.get('/routes/:routeId/pois/:poiId/pictures/:pictureId', (req, res) => {
|
||||
const routeId = Number(req.params.routeId);
|
||||
const poiId = Number(req.params.poiId);
|
||||
const pictureId = Number(req.params.pictureId);
|
||||
if (req.query.metadata === 'true') {
|
||||
res.json(getPicture(db, routeId, pictureId));
|
||||
res.json(getPicture(db, routeId, poiId, pictureId));
|
||||
return;
|
||||
}
|
||||
sendFileResource(res, getPictureFile(db, routeId, pictureId));
|
||||
sendFileResource(res, getPictureFile(db, routeId, poiId, pictureId));
|
||||
});
|
||||
|
||||
api.post('/routes/:id/pictures', upload.single('picture'), (req, res) => {
|
||||
const picture = createPicture(db, Number(req.params.id), req.body, req.file);
|
||||
api.post('/routes/:routeId/pois/:poiId/pictures', upload.single('picture'), (req, res) => {
|
||||
const routeId = Number(req.params.routeId);
|
||||
const poiId = Number(req.params.poiId);
|
||||
const picture = createPicture(db, routeId, poiId, req.body, req.file);
|
||||
res.status(201)
|
||||
.location(`/api/routes/${req.params.id}/pictures/${picture.id}`)
|
||||
.location(`/api/routes/${routeId}/pois/${poiId}/pictures/${picture.id}`)
|
||||
.json(picture);
|
||||
});
|
||||
|
||||
api.put('/routes/:id/pictures/:pictureId', upload.single('picture'), (req, res) => {
|
||||
res.json(updatePicture(db, Number(req.params.id), Number(req.params.pictureId), req.body, req.file));
|
||||
api.put('/routes/:routeId/pois/:poiId/pictures/:pictureId', upload.single('picture'), (req, res) => {
|
||||
res.json(updatePicture(
|
||||
db,
|
||||
Number(req.params.routeId),
|
||||
Number(req.params.poiId),
|
||||
Number(req.params.pictureId),
|
||||
req.body,
|
||||
req.file
|
||||
));
|
||||
});
|
||||
|
||||
api.delete('/routes/:id/pictures/:pictureId', (req, res) => {
|
||||
res.json(deletePicture(db, Number(req.params.id), Number(req.params.pictureId)));
|
||||
api.delete('/routes/:routeId/pois/:poiId/pictures/:pictureId', (req, res) => {
|
||||
res.json(deletePicture(
|
||||
db,
|
||||
Number(req.params.routeId),
|
||||
Number(req.params.poiId),
|
||||
Number(req.params.pictureId)
|
||||
));
|
||||
});
|
||||
|
||||
api.get('/routes/:id/audio', (req, res) => {
|
||||
res.json({ audio: listAudio(db, Number(req.params.id), { poiId: req.query.poiId }) });
|
||||
});
|
||||
|
||||
api.get('/routes/:id/audio/:poiId', (req, res) => {
|
||||
const routeId = Number(req.params.id);
|
||||
api.get('/routes/:routeId/pois/:poiId/audio', (req, res) => {
|
||||
const routeId = Number(req.params.routeId);
|
||||
const poiId = Number(req.params.poiId);
|
||||
if (req.query.metadata === 'true') {
|
||||
res.json(getAudio(db, routeId, poiId));
|
||||
@@ -133,19 +144,21 @@ export function createApiRouter(db) {
|
||||
sendFileResource(res, getAudioFile(db, routeId, poiId));
|
||||
});
|
||||
|
||||
api.post('/routes/:id/audio', upload.single('audio'), (req, res) => {
|
||||
const audio = createAudio(db, Number(req.params.id), req.body, req.file);
|
||||
api.post('/routes/:routeId/pois/:poiId/audio', upload.single('audio'), (req, res) => {
|
||||
const routeId = Number(req.params.routeId);
|
||||
const poiId = Number(req.params.poiId);
|
||||
const audio = createAudio(db, routeId, poiId, req.file);
|
||||
res.status(201)
|
||||
.location(`/api/routes/${req.params.id}/audio/${audio.poiId}`)
|
||||
.location(`/api/routes/${routeId}/pois/${poiId}/audio`)
|
||||
.json(audio);
|
||||
});
|
||||
|
||||
api.put('/routes/:id/audio/:poiId', upload.single('audio'), (req, res) => {
|
||||
res.json(updateAudio(db, Number(req.params.id), Number(req.params.poiId), req.file));
|
||||
api.put('/routes/:routeId/pois/:poiId/audio', upload.single('audio'), (req, res) => {
|
||||
res.json(updateAudio(db, Number(req.params.routeId), Number(req.params.poiId), req.file));
|
||||
});
|
||||
|
||||
api.delete('/routes/:id/audio/:poiId', (req, res) => {
|
||||
res.json(deleteAudio(db, Number(req.params.id), Number(req.params.poiId)));
|
||||
api.delete('/routes/:routeId/pois/:poiId/audio', (req, res) => {
|
||||
res.json(deleteAudio(db, Number(req.params.routeId), Number(req.params.poiId)));
|
||||
});
|
||||
|
||||
api.delete('/routes/:id', (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user