mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-22 17:56:30 -05:00
MediaService: Add JS-Docs to media service
Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
24a5f2646a
commit
c4289c9693
1 changed files with 29 additions and 4 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020 The HedgeDoc developers (see AUTHORS file)
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
@ -59,7 +59,16 @@ export class MediaService {
|
||||||
return allowedTypes.includes(mimeType);
|
return allowedTypes.includes(mimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async saveFile(
|
/**
|
||||||
|
* @async
|
||||||
|
* Save the given buffer to the configured MediaBackend and create a MediaUploadEntity to track where the file is, who uploaded it and to which note.
|
||||||
|
* @param {Buffer} fileBuffer - the buffer of the file to save.
|
||||||
|
* @param {string} username - the username of the user who uploaded this file
|
||||||
|
* @param {string} noteId - the id or alias of the note which will be associated with the new file.
|
||||||
|
* @return {string} the url of the saved file
|
||||||
|
* @throws {ClientError} the MIME type of the file is not supported.
|
||||||
|
*/
|
||||||
|
async saveFile(
|
||||||
fileBuffer: Buffer,
|
fileBuffer: Buffer,
|
||||||
username: string,
|
username: string,
|
||||||
noteId: string,
|
noteId: string,
|
||||||
|
@ -93,7 +102,16 @@ export class MediaService {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async deleteFile(filename: string, username: string): Promise<void> {
|
/**
|
||||||
|
* @async
|
||||||
|
* Try to delete the file specified by the filename with the user specified by the username.
|
||||||
|
* @param {string} filename - the name of the file to delete.
|
||||||
|
* @param {string} username - the username of the user who uploaded this file
|
||||||
|
* @return {string} the url of the saved file
|
||||||
|
* @throws {PermissionError} the user is not permitted to delete this file.
|
||||||
|
* @throws {NotInDBError} - the file entry specified is not in the database
|
||||||
|
*/
|
||||||
|
async deleteFile(filename: string, username: string): Promise<void> {
|
||||||
this.logger.debug(
|
this.logger.debug(
|
||||||
`Deleting '${filename}' for user '${username}'`,
|
`Deleting '${filename}' for user '${username}'`,
|
||||||
'deleteFile',
|
'deleteFile',
|
||||||
|
@ -112,7 +130,14 @@ export class MediaService {
|
||||||
await this.mediaUploadRepository.remove(mediaUpload);
|
await this.mediaUploadRepository.remove(mediaUpload);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async findUploadByFilename(filename: string): Promise<MediaUpload> {
|
/**
|
||||||
|
* @async
|
||||||
|
* Find a file entry by its filename.
|
||||||
|
* @param {string} filename - the name of the file entry to find
|
||||||
|
* @return {MediaUpload} the file entry, that was searched for
|
||||||
|
* @throws {NotInDBError} - the file entry specified is not in the database
|
||||||
|
*/
|
||||||
|
async findUploadByFilename(filename: string): Promise<MediaUpload> {
|
||||||
const mediaUpload = await this.mediaUploadRepository.findOne(filename, {
|
const mediaUpload = await this.mediaUploadRepository.findOne(filename, {
|
||||||
relations: ['user'],
|
relations: ['user'],
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue