mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 07:04:45 -04:00
PrivateApi: Add option to keep media to DELETE /notes/{note}
This adds a body to the route DELETE /notes/{note} of the private api to specify if the associated media uploads of the note should be kept or deleted. Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
b65297523c
commit
bd4231c1c5
2 changed files with 56 additions and 6 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
import {
|
||||
BadRequestException,
|
||||
Body,
|
||||
Controller,
|
||||
Delete,
|
||||
Get,
|
||||
|
@ -33,6 +34,7 @@ import { RevisionMetadataDto } from '../../../revisions/revision-metadata.dto';
|
|||
import { RevisionDto } from '../../../revisions/revision.dto';
|
||||
import { RevisionsService } from '../../../revisions/revisions.service';
|
||||
import { MarkdownBody } from '../../utils/markdownbody-decorator';
|
||||
import { NoteMediaDeletionDto } from '../../../notes/note.media-deletion.dto';
|
||||
|
||||
@Controller('notes')
|
||||
export class NotesController {
|
||||
|
@ -140,6 +142,7 @@ export class NotesController {
|
|||
@HttpCode(204)
|
||||
async deleteNote(
|
||||
@Param('noteIdOrAlias') noteIdOrAlias: string,
|
||||
@Body() noteMediaDeletionDto: NoteMediaDeletionDto,
|
||||
): Promise<void> {
|
||||
try {
|
||||
// ToDo: use actual user here
|
||||
|
@ -148,6 +151,14 @@ export class NotesController {
|
|||
if (!this.permissionsService.isOwner(user, note)) {
|
||||
throw new UnauthorizedException('Deleting note denied!');
|
||||
}
|
||||
const mediaUploads = await this.mediaService.listUploadsByNote(note);
|
||||
for (const mediaUpload of mediaUploads) {
|
||||
if (!noteMediaDeletionDto.keepMedia) {
|
||||
await this.mediaService.deleteFile(mediaUpload);
|
||||
} else {
|
||||
await this.mediaService.removeNoteFromMediaUpload(mediaUpload);
|
||||
}
|
||||
}
|
||||
this.logger.debug('Deleting note: ' + noteIdOrAlias, 'deleteNote');
|
||||
await this.noteService.deleteNote(note);
|
||||
this.logger.debug('Successfully deleted ' + noteIdOrAlias, 'deleteNote');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue