mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-05 08:33:09 +02:00
fix
This commit is contained in:
parent
bb460a1785
commit
c3db55b5b6
2 changed files with 8 additions and 1 deletions
|
@ -15,6 +15,7 @@ import type { MiLocalUser } from '@/models/entities/User.js';
|
|||
|
||||
@Injectable()
|
||||
export class ClipService {
|
||||
public static NoSuchNoteError = class extends Error {};
|
||||
public static NoSuchClipError = class extends Error {};
|
||||
public static AlreadyAddedError = class extends Error {};
|
||||
public static TooManyClipNotesError = class extends Error {};
|
||||
|
@ -118,10 +119,14 @@ export class ClipService {
|
|||
noteId: noteId,
|
||||
clipId: clip.id,
|
||||
});
|
||||
} catch (e) {
|
||||
} catch (e: any) {
|
||||
if (isDuplicateKeyValueError(e)) {
|
||||
throw new ClipService.AlreadyAddedError();
|
||||
} else if (e.detail.includes('is not present in table "note".')) {
|
||||
throw new ClipService.NoSuchNoteError();
|
||||
}
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
this.clipsRepository.update(clip.id, {
|
||||
|
|
|
@ -70,6 +70,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
} catch (e) {
|
||||
if (e instanceof ClipService.NoSuchClipError) {
|
||||
throw new ApiError(meta.errors.noSuchClip);
|
||||
} else if (e instanceof ClipService.NoSuchNoteError) {
|
||||
throw new ApiError(meta.errors.noSuchNote);
|
||||
} else if (e instanceof ClipService.AlreadyAddedError) {
|
||||
throw new ApiError(meta.errors.alreadyClipped);
|
||||
} else if (e instanceof ClipService.TooManyClipNotesError) {
|
||||
|
|
Loading…
Reference in a new issue