server: fix errors for replies and state when note doesnt exist

This commit is contained in:
Johann150 2022-12-13 20:35:46 +01:00
parent 5513a3eb3a
commit d4d1e03479
Signed by untrusted user: Johann150
GPG Key ID: 9EE6577A2A06F8F1
2 changed files with 15 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query.js';
import { generateVisibilityQuery } from '../../common/generate-visibility-query.js';
import { generateMutedUserQuery } from '../../common/generate-muted-user-query.js';
import { generateBlockedUserQuery } from '../../common/generate-block-query.js';
import { ApiError } from '@/server/api/error.js';
export const meta = {
tags: ['notes'],
@ -19,6 +20,8 @@ export const meta = {
ref: 'Note',
},
},
errors: ['NO_SUCH_NOTE'],
} as const;
export const paramDef = {
@ -34,6 +37,11 @@ export const paramDef = {
// eslint-disable-next-line import/no-default-export
export default define(meta, paramDef, async (ps, user) => {
const note = await getNote(ps.noteId, user).catch(err => {
if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError('NO_SUCH_NOTE');
throw err;
});
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
.andWhere('note.replyId = :replyId', { replyId: ps.noteId })
.innerJoinAndSelect('note.user', 'user')

View File

@ -1,6 +1,7 @@
import { NoteFavorites, Notes, NoteThreadMutings, NoteWatchings } from '@/models/index.js';
import { getNote } from '../../common/getters.js';
import define from '../../define.js';
import { ApiError } from '@/server/api/error.js';
export const meta = {
tags: ['notes'],
@ -25,6 +26,8 @@ export const meta = {
},
},
},
errors: ['NO_SUCH_NOTE'],
} as const;
export const paramDef = {
@ -37,7 +40,10 @@ export const paramDef = {
// eslint-disable-next-line import/no-default-export
export default define(meta, paramDef, async (ps, user) => {
const note = await getNote(ps.noteId, user);
const note = await getNote(ps.noteId, user).catch(err => {
if (err.id === '9725d0ce-ba28-4dde-95a7-2cbb2c15de24') throw new ApiError('NO_SUCH_NOTE');
throw err;
});
const [favorite, watching, threadMuting] = await Promise.all([
NoteFavorites.count({