aboutsummaryrefslogtreecommitdiff
path: root/src/api/routes
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes')
-rw-r--r--src/api/routes/albums/albumGET.js11
-rw-r--r--src/api/routes/albums/link/linkPOST.js3
2 files changed, 12 insertions, 2 deletions
diff --git a/src/api/routes/albums/albumGET.js b/src/api/routes/albums/albumGET.js
index f9e5208..655db13 100644
--- a/src/api/routes/albums/albumGET.js
+++ b/src/api/routes/albums/albumGET.js
@@ -1,6 +1,7 @@
const Route = require('../../structures/Route');
const config = require('../../../../config');
const db = require('knex')(config.server.database);
+const Util = require('../../utils/Util');
class albumGET extends Route {
constructor() {
@@ -21,13 +22,19 @@ class albumGET extends Route {
if (!album) return res.status(400).json({ message: 'Album not found' });
const fileList = await db.table('albumsFiles').where('albumId', link.albumId);
- const fileIds = fileList.filter(el => el.file.fileId);
+ const fileIds = fileList.map(el => el.fileId);
const files = await db.table('files')
- .where('id', fileIds)
+ .whereIn('id', fileIds)
+ .orderBy('id', 'desc')
.select('name');
+ for (let file of files) {
+ file = Util.constructFilePublicLink(file);
+ }
return res.json({
message: 'Successfully retrieved files',
+ name: album.name,
+ downloadEnabled: link.enableDownload,
files
});
}
diff --git a/src/api/routes/albums/link/linkPOST.js b/src/api/routes/albums/link/linkPOST.js
index 26a527a..9c8c0bc 100644
--- a/src/api/routes/albums/link/linkPOST.js
+++ b/src/api/routes/albums/link/linkPOST.js
@@ -17,6 +17,9 @@ class linkPOST extends Route {
const exists = await db.table('albums').where('id', albumId).first();
if (!exists) return res.status(400).json({ message: 'Album doesn\t exist' });
+ const count = await db.table('links').where('albumId', albumId).count({ count: 'id' });
+ if (count[0].count >= config.albums.maxLinksPerAlbum) return res.status(400).json({ message: 'Maximum links per album reached' });
+
const identifier = await Util.getUniqueAlbumIdentifier();
if (!identifier) return res.status(500).json({ message: 'There was a problem allocating a link for your album' });