Fix deletion of albums and links

This commit is contained in:
Pitu 2019-09-30 07:24:37 +00:00
parent 0d36f0d69a
commit 4db167ec43
5 changed files with 34 additions and 24 deletions

View File

@ -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' });
/*
@ -17,12 +17,6 @@ class albumDELETE extends Route {
if (!album) return res.status(400).json({ message: 'The file doesn\'t exist or doesn\'t belong to the user' });
try {
/*
Should we also delete every file of that album?
*/
if (purge) {
await Util.deleteAllFilesFromAlbum(id);
}
/*
Delete the album
*/

View File

@ -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;

View File

@ -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' });

View File

@ -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);
},

View File

@ -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);
},