mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-12-29 05:13:18 +00:00
NotesService: Extract checkNoteIdOrAlias into own method
To reuse this functionality in the history services setHistory method, it was extracted into its own exported function. Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
7e20bb0fef
commit
6b6aef284c
1 changed files with 22 additions and 18 deletions
|
@ -79,6 +79,8 @@ export class NotesService {
|
||||||
* @param {string=} alias - a optional alias the note should have
|
* @param {string=} alias - a optional alias the note should have
|
||||||
* @param {User=} owner - the owner of the note
|
* @param {User=} owner - the owner of the note
|
||||||
* @return {Note} the newly created note
|
* @return {Note} the newly created note
|
||||||
|
* @throws {AlreadyInDBError} a note with the requested id or alias already exists
|
||||||
|
* @throws {ForbiddenIdError} the requested id or alias is forbidden
|
||||||
*/
|
*/
|
||||||
async createNote(
|
async createNote(
|
||||||
noteContent: string,
|
noteContent: string,
|
||||||
|
@ -92,15 +94,7 @@ export class NotesService {
|
||||||
]);
|
]);
|
||||||
if (alias) {
|
if (alias) {
|
||||||
newNote.alias = alias;
|
newNote.alias = alias;
|
||||||
if (this.appConfig.forbiddenNoteIds.includes(alias)) {
|
this.checkNoteIdOrAlias(alias);
|
||||||
this.logger.debug(
|
|
||||||
`Creating a note with the alias '${alias}' is forbidden by the administrator.`,
|
|
||||||
'createNote',
|
|
||||||
);
|
|
||||||
throw new ForbiddenIdError(
|
|
||||||
`Creating a note with the alias '${alias}' is forbidden by the administrator.`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (owner) {
|
if (owner) {
|
||||||
newNote.historyEntries = [HistoryEntry.create(owner)];
|
newNote.historyEntries = [HistoryEntry.create(owner)];
|
||||||
|
@ -154,6 +148,7 @@ export class NotesService {
|
||||||
* Get a note by either their id or alias.
|
* Get a note by either their id or alias.
|
||||||
* @param {string} noteIdOrAlias - the notes id or alias
|
* @param {string} noteIdOrAlias - the notes id or alias
|
||||||
* @return {Note} the note
|
* @return {Note} the note
|
||||||
|
* @throws {ForbiddenIdError} the requested id or alias is forbidden
|
||||||
* @throws {NotInDBError} there is no note with this id or alias
|
* @throws {NotInDBError} there is no note with this id or alias
|
||||||
*/
|
*/
|
||||||
async getNoteByIdOrAlias(noteIdOrAlias: string): Promise<Note> {
|
async getNoteByIdOrAlias(noteIdOrAlias: string): Promise<Note> {
|
||||||
|
@ -161,15 +156,7 @@ export class NotesService {
|
||||||
`Trying to find note '${noteIdOrAlias}'`,
|
`Trying to find note '${noteIdOrAlias}'`,
|
||||||
'getNoteByIdOrAlias',
|
'getNoteByIdOrAlias',
|
||||||
);
|
);
|
||||||
if (this.appConfig.forbiddenNoteIds.includes(noteIdOrAlias)) {
|
this.checkNoteIdOrAlias(noteIdOrAlias);
|
||||||
this.logger.debug(
|
|
||||||
`Accessing a note with the alias '${noteIdOrAlias}' is forbidden by the administrator.`,
|
|
||||||
'getNoteByIdOrAlias',
|
|
||||||
);
|
|
||||||
throw new ForbiddenIdError(
|
|
||||||
`Accessing a note with the alias '${noteIdOrAlias}' is forbidden by the administrator.`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const note = await this.noteRepository.findOne({
|
const note = await this.noteRepository.findOne({
|
||||||
where: [
|
where: [
|
||||||
{
|
{
|
||||||
|
@ -202,6 +189,23 @@ export class NotesService {
|
||||||
return note;
|
return note;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the provided note id or alias is not forbidden
|
||||||
|
* @param noteIdOrAlias - the alias or id in question
|
||||||
|
* @throws {ForbiddenIdError} the requested id or alias is forbidden
|
||||||
|
*/
|
||||||
|
checkNoteIdOrAlias(noteIdOrAlias: string): void {
|
||||||
|
if (this.appConfig.forbiddenNoteIds.includes(noteIdOrAlias)) {
|
||||||
|
this.logger.debug(
|
||||||
|
`A note with the alias '${noteIdOrAlias}' is forbidden by the administrator.`,
|
||||||
|
'checkNoteIdOrAlias',
|
||||||
|
);
|
||||||
|
throw new ForbiddenIdError(
|
||||||
|
`A note with the alias '${noteIdOrAlias}' is forbidden by the administrator.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @async
|
* @async
|
||||||
* Delete a note
|
* Delete a note
|
||||||
|
|
Loading…
Reference in a new issue