summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin/emoji
diff options
context:
space:
mode:
authorMar0xy <marie@kaifa.ch>2023-11-24 18:19:01 +0100
committerMar0xy <marie@kaifa.ch>2023-11-24 18:19:01 +0100
commit7ba8529141d5a772e0f557a40ae84ab03e10f87a (patch)
treed12b35261f80d43b7913328325d635be9ac41618 /packages/backend/src/server/api/endpoints/admin/emoji
parentchore: replace icons, change errors (diff)
downloadsharkey-7ba8529141d5a772e0f557a40ae84ab03e10f87a.tar.gz
sharkey-7ba8529141d5a772e0f557a40ae84ab03e10f87a.tar.bz2
sharkey-7ba8529141d5a772e0f557a40ae84ab03e10f87a.zip
fix: importing remote emojis with used name
Closes transfem-org/Sharkey#164
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/emoji')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/copy.ts9
1 files changed, 9 insertions, 0 deletions
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<typeof meta, typeof paramDef> { // 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 {