diff options
| author | Pitu <[email protected]> | 2020-05-10 20:02:48 +0900 |
|---|---|---|
| committer | Pitu <[email protected]> | 2020-05-10 20:02:48 +0900 |
| commit | 4c52932426a3e91a205940a6ab08bfee3e23fadf (patch) | |
| tree | 5970a1b1402ec1b205248389a8f09cc6649239cc /src/api/routes/files/filesAlbumsGET.js | |
| parent | Feature: Migration script from v3 to v4 (diff) | |
| download | host.fuwn.me-4c52932426a3e91a205940a6ab08bfee3e23fadf.tar.xz host.fuwn.me-4c52932426a3e91a205940a6ab08bfee3e23fadf.zip | |
Features:
* Serve files during development
* Own endpoint for fetching the albums of a file
Diffstat (limited to 'src/api/routes/files/filesAlbumsGET.js')
| -rw-r--r-- | src/api/routes/files/filesAlbumsGET.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/api/routes/files/filesAlbumsGET.js b/src/api/routes/files/filesAlbumsGET.js new file mode 100644 index 0000000..c834658 --- /dev/null +++ b/src/api/routes/files/filesAlbumsGET.js @@ -0,0 +1,31 @@ +const Route = require('../../structures/Route'); + +class filesGET extends Route { + constructor() { + super('/file/:id/albums', 'get'); + } + + async run(req, res, db, user) { + const { id } = req.params; + if (!id) return res.status(400).json({ message: 'Invalid file ID supplied' }); + + let albums = []; + let albumFiles = await db.table('albumsFiles') + .where('fileId', id) + .select('albumId'); + + if (albumFiles.length) { + albumFiles = albumFiles.map(a => a.albumId); + albums = await db.table('albums') + .whereIn('id', albumFiles) + .select('id', 'name'); + } + + return res.json({ + message: 'Successfully retrieved file albums', + albums + }); + } +} + +module.exports = filesGET; |