mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-23 10:16:32 -05:00
NotesService: Throw NotInDBError
when the note wasn't found
Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
dea3c1d393
commit
ec8cf6d33e
3 changed files with 25 additions and 4 deletions
7
src/errors/errors.ts
Normal file
7
src/errors/errors.ts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
export class NotInDBError extends Error {
|
||||||
|
name = 'NotInDBError';
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ClientError extends Error {
|
||||||
|
name = 'ClientError';
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
import { NotInDBError } from '../errors/errors';
|
||||||
import { ConsoleLoggerService } from '../logger/console-logger.service';
|
import { ConsoleLoggerService } from '../logger/console-logger.service';
|
||||||
import { Revision } from '../revisions/revision.entity';
|
import { Revision } from '../revisions/revision.entity';
|
||||||
import { RevisionsService } from '../revisions/revisions.service';
|
import { RevisionsService } from '../revisions/revisions.service';
|
||||||
|
@ -132,8 +133,19 @@ export class NotesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
async getNoteByIdOrAlias(noteIdOrAlias: string): Promise<Note> {
|
async getNoteByIdOrAlias(noteIdOrAlias: string): Promise<Note> {
|
||||||
|
this.logger.debug(
|
||||||
|
`Trying to find note '${noteIdOrAlias}'`,
|
||||||
|
'getNoteByIdOrAlias',
|
||||||
|
);
|
||||||
const note = await this.noteRepository.findOne({
|
const note = await this.noteRepository.findOne({
|
||||||
where: [{ id: noteIdOrAlias }, { alias: noteIdOrAlias }],
|
where: [
|
||||||
|
{
|
||||||
|
id: noteIdOrAlias,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
alias: noteIdOrAlias,
|
||||||
|
},
|
||||||
|
],
|
||||||
relations: [
|
relations: [
|
||||||
'authorColors',
|
'authorColors',
|
||||||
'owner',
|
'owner',
|
||||||
|
@ -142,8 +154,9 @@ export class NotesService {
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
if (note === undefined) {
|
if (note === undefined) {
|
||||||
//TODO: Improve error handling
|
throw new NotInDBError(
|
||||||
throw new Error('Note not found');
|
`Note with id/alias '${noteIdOrAlias}' not found.`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return note;
|
return note;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { Test } from '@nestjs/testing';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
import * as request from 'supertest';
|
import * as request from 'supertest';
|
||||||
import { PublicApiModule } from '../../src/api/public/public-api.module';
|
import { PublicApiModule } from '../../src/api/public/public-api.module';
|
||||||
|
import { NotInDBError } from '../../src/errors/errors';
|
||||||
import { GroupsModule } from '../../src/groups/groups.module';
|
import { GroupsModule } from '../../src/groups/groups.module';
|
||||||
import { LoggerModule } from '../../src/logger/logger.module';
|
import { LoggerModule } from '../../src/logger/logger.module';
|
||||||
import { NotesModule } from '../../src/notes/notes.module';
|
import { NotesModule } from '../../src/notes/notes.module';
|
||||||
|
@ -82,7 +83,7 @@ describe('Notes', () => {
|
||||||
.delete('/notes/test3')
|
.delete('/notes/test3')
|
||||||
.expect(200);
|
.expect(200);
|
||||||
return expect(notesService.getNoteByIdOrAlias('test3')).rejects.toEqual(
|
return expect(notesService.getNoteByIdOrAlias('test3')).rejects.toEqual(
|
||||||
Error('Note not found'),
|
new NotInDBError("Note with id/alias 'test3' not found."),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue