fix: edit when it comes to quotes

This commit is contained in:
Mar0xy 2023-12-04 15:45:26 +01:00
parent ca06e45299
commit d5b598d696
No known key found for this signature in database
GPG key ID: 56569BBE47D2C828

View file

@ -123,6 +123,18 @@ export const meta = {
code: 'CANNOT_RENOTE_OUTSIDE_OF_CHANNEL', code: 'CANNOT_RENOTE_OUTSIDE_OF_CHANNEL',
id: '33510210-8452-094c-6227-4a6c05d99f00', id: '33510210-8452-094c-6227-4a6c05d99f00',
}, },
cannotQuoteaQuoteOfCurrentPost: {
message: 'Cannot quote a quote of edited note.',
code: 'CANNOT_QUOTE_A_QUOTE_OF_EDITED_NOTE',
id: '33510210-8452-094c-6227-4a6c05d99f01',
},
cannotQuoteCurrentPost: {
message: 'Cannot quote the current note.',
code: 'CANNOT_QUOTE_THE_CURRENT_NOTE',
id: '33510210-8452-094c-6227-4a6c05d99f02',
},
}, },
} as const; } as const;
@ -268,6 +280,11 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
} }
let renote: MiNote | null = null; let renote: MiNote | null = null;
if (ps.renoteId === ps.editId) {
throw new ApiError(meta.errors.cannotQuoteCurrentPost);
}
if (ps.renoteId != null) { if (ps.renoteId != null) {
// Fetch renote to note // Fetch renote to note
renote = await this.notesRepository.findOneBy({ id: ps.renoteId }); renote = await this.notesRepository.findOneBy({ id: ps.renoteId });
@ -278,6 +295,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
throw new ApiError(meta.errors.cannotReRenote); throw new ApiError(meta.errors.cannotReRenote);
} }
if (renote.renoteId === ps.editId) {
throw new ApiError(meta.errors.cannotQuoteaQuoteOfCurrentPost);
}
// Check blocking // Check blocking
if (renote.userId !== me.id) { if (renote.userId !== me.id) {
const blockExist = await this.blockingsRepository.exist({ const blockExist = await this.blockingsRepository.exist({