diff options
| author | Pitu <[email protected]> | 2019-09-30 07:24:37 +0000 |
|---|---|---|
| committer | Pitu <[email protected]> | 2019-09-30 07:24:37 +0000 |
| commit | 4db167ec43806e20cc40932a292efc2909e69328 (patch) | |
| tree | 0bcf368689d98f867053237f85462408e73aab1a | |
| parent | feature: tags logic (diff) | |
| download | host.fuwn.me-4db167ec43806e20cc40932a292efc2909e69328.tar.xz host.fuwn.me-4db167ec43806e20cc40932a292efc2909e69328.zip | |
Fix deletion of albums and links
| -rw-r--r-- | src/api/routes/albums/albumDELETE.js | 10 | ||||
| -rw-r--r-- | src/api/routes/albums/albumPurgeDELETE.js | 29 | ||||
| -rw-r--r-- | src/api/routes/albums/link/linkDELETE.js | 4 | ||||
| -rw-r--r-- | src/site/pages/dashboard/albums/index.vue | 13 | ||||
| -rw-r--r-- | src/site/pages/dashboard/tags/index.vue | 2 |
5 files changed, 34 insertions, 24 deletions
diff --git a/src/api/routes/albums/albumDELETE.js b/src/api/routes/albums/albumDELETE.js index b43d046..2aa9942 100644 --- a/src/api/routes/albums/albumDELETE.js +++ b/src/api/routes/albums/albumDELETE.js @@ -3,11 +3,11 @@ const Util = require('../../utils/Util'); class albumDELETE extends Route { constructor() { - super('/album/:id/:purge*?', 'delete'); + super('/album/:id', 'delete'); } async run(req, res, db, user) { - const { id, purge } = req.params; + const { id } = req.params; if (!id) return res.status(400).json({ message: 'Invalid album ID supplied' }); /* @@ -18,12 +18,6 @@ class albumDELETE extends Route { try { /* - Should we also delete every file of that album? - */ - if (purge) { - await Util.deleteAllFilesFromAlbum(id); - } - /* Delete the album */ await db.table('albums').where({ id }).delete(); diff --git a/src/api/routes/albums/albumPurgeDELETE.js b/src/api/routes/albums/albumPurgeDELETE.js new file mode 100644 index 0000000..5a67c8e --- /dev/null +++ b/src/api/routes/albums/albumPurgeDELETE.js @@ -0,0 +1,29 @@ +const Route = require('../../structures/Route'); +const Util = require('../../utils/Util'); + +class albumDELETE extends Route { + constructor() { + super('/album/:id/purge', 'delete'); + } + + async run(req, res, db, user) { + const { id } = req.params; + if (!id) return res.status(400).json({ message: 'Invalid album ID supplied' }); + + /* + Check if the album exists + */ + const album = await db.table('albums').where({ id, userId: user.id }).first(); + if (!album) return res.status(400).json({ message: 'The file doesn\'t exist or doesn\'t belong to the user' }); + + try { + await Util.deleteAllFilesFromAlbum(id); + await db.table('albums').where({ id }).delete(); + return res.json({ message: 'The album was deleted successfully' }); + } catch (error) { + return super.error(res, error); + } + } +} + +module.exports = albumDELETE; diff --git a/src/api/routes/albums/link/linkDELETE.js b/src/api/routes/albums/link/linkDELETE.js index 3ec4d9d..7adcaac 100644 --- a/src/api/routes/albums/link/linkDELETE.js +++ b/src/api/routes/albums/link/linkDELETE.js @@ -7,10 +7,6 @@ class linkDELETE extends Route { } async run(req, res, db) { - console.log('------------------------------'); - console.log('YES HI'); - console.log('------------------------------'); - console.log('WHO NEEDS FANCY DEBUGGING TOOLS ANYWAYS'); const { identifier } = req.params; if (!identifier) return res.status(400).json({ message: 'Invalid identifier supplied' }); diff --git a/src/site/pages/dashboard/albums/index.vue b/src/site/pages/dashboard/albums/index.vue index 079114d..9a7f8c9 100644 --- a/src/site/pages/dashboard/albums/index.vue +++ b/src/site/pages/dashboard/albums/index.vue @@ -300,17 +300,8 @@ export default { onConfirm: () => this.deleteAlbum(id) }); }, - promptPurgeAlbum(id) { - this.$dialog.confirm({ - message: 'Would you like to delete every file associated with this album?', - cancelText: 'No', - confirmText: 'Yes', - onConfirm: () => this.deleteAlbum(id, true), - onCancel: () => this.deleteAlbum(id, false) - }); - }, - async deleteAlbum(id, purge) { - const response = await this.$axios.$delete(`album/${id}/${purge ? true : ''}`); + async deleteAlbum(id) { + const response = await this.$axios.$delete(`album/${id}`); this.getAlbums(); return this.$toast.open(response.message); }, diff --git a/src/site/pages/dashboard/tags/index.vue b/src/site/pages/dashboard/tags/index.vue index 6dbcb55..a025d46 100644 --- a/src/site/pages/dashboard/tags/index.vue +++ b/src/site/pages/dashboard/tags/index.vue @@ -249,7 +249,7 @@ export default { }); }, async deleteTag(id, purge) { - const response = await this.$axios.$delete(`tags/${id}/${purge ? true : ''}`); + const response = await this.$axios.$delete(`tags/${id}/${purge ? 'purge' : ''}`); this.getTags(); return this.$toast.open(response.message); }, |