From 7ba8529141d5a772e0f557a40ae84ab03e10f87a Mon Sep 17 00:00:00 2001 From: Mar0xy Date: Fri, 24 Nov 2023 18:19:01 +0100 Subject: [PATCH] fix: importing remote emojis with used name Closes transfem-org/Sharkey#164 --- .../backend/src/server/api/endpoints/admin/emoji/copy.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts index a65e4e7624..9348e279f1 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts @@ -4,6 +4,7 @@ */ import { Inject, Injectable } from '@nestjs/common'; +import { IsNull } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; import type { EmojisRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; @@ -26,6 +27,11 @@ export const meta = { code: 'NO_SUCH_EMOJI', id: 'e2785b66-dca3-4087-9cac-b93c541cc425', }, + duplicateName: { + message: 'Duplicate name.', + code: 'DUPLICATE_NAME', + id: 'f7a3462c-4e6e-4069-8421-b9bd4f4c3975', + }, }, res: { @@ -69,6 +75,9 @@ export default class extends Endpoint { // eslint- throw new ApiError(meta.errors.noSuchEmoji); } + const isDuplicate = await this.emojisRepository.findOneBy({ name: emoji.name, host: IsNull() } ); + if (isDuplicate) throw new ApiError(meta.errors.duplicateName); + let driveFile: MiDriveFile; try {