summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-03-31 09:15:04 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-03-31 09:15:04 +0900
commit79354f4fafcf2794d4f9aef2fc523d420c088f8c (patch)
treedd1349390fe1ff1f75f213b7108fac3d17f78117 /src/models
parentRefactoring (diff)
downloadmisskey-79354f4fafcf2794d4f9aef2fc523d420c088f8c.tar.gz
misskey-79354f4fafcf2794d4f9aef2fc523d420c088f8c.tar.bz2
misskey-79354f4fafcf2794d4f9aef2fc523d420c088f8c.zip
Refactoring
Diffstat (limited to 'src/models')
-rw-r--r--src/models/index.ts4
-rw-r--r--src/models/repositories/emoji.ts27
2 files changed, 29 insertions, 2 deletions
diff --git a/src/models/index.ts b/src/models/index.ts
index 39f185e6f4..c3b329f4f8 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -2,7 +2,6 @@ import { getRepository, getCustomRepository } from 'typeorm';
import { Announcement } from './entities/announcement';
import { AnnouncementRead } from './entities/announcement-read';
import { Instance } from './entities/instance';
-import { Emoji } from './entities/emoji';
import { Poll } from './entities/poll';
import { PollVote } from './entities/poll-vote';
import { Meta } from './entities/meta';
@@ -52,6 +51,7 @@ import { AntennaRepository } from './repositories/antenna';
import { AntennaNote } from './entities/antenna-note';
import { PromoNote } from './entities/promo-note';
import { PromoRead } from './entities/promo-read';
+import { EmojiRepository } from './repositories/emoji';
export const Announcements = getRepository(Announcement);
export const AnnouncementReads = getRepository(AnnouncementRead);
@@ -79,7 +79,7 @@ export const UsedUsernames = getRepository(UsedUsername);
export const Followings = getCustomRepository(FollowingRepository);
export const FollowRequests = getCustomRepository(FollowRequestRepository);
export const Instances = getRepository(Instance);
-export const Emojis = getRepository(Emoji);
+export const Emojis = getCustomRepository(EmojiRepository);
export const DriveFiles = getCustomRepository(DriveFileRepository);
export const DriveFolders = getCustomRepository(DriveFolderRepository);
export const Notifications = getCustomRepository(NotificationRepository);
diff --git a/src/models/repositories/emoji.ts b/src/models/repositories/emoji.ts
new file mode 100644
index 0000000000..b485b37da5
--- /dev/null
+++ b/src/models/repositories/emoji.ts
@@ -0,0 +1,27 @@
+import { EntityRepository, Repository } from 'typeorm';
+import { Emoji } from '../entities/emoji';
+import { ensure } from '../../prelude/ensure';
+
+@EntityRepository(Emoji)
+export class EmojiRepository extends Repository<Emoji> {
+ public async pack(
+ src: Emoji['id'] | Emoji,
+ ) {
+ const emoji = typeof src === 'object' ? src : await this.findOne(src).then(ensure);
+
+ return {
+ id: emoji.id,
+ aliases: emoji.aliases,
+ name: emoji.name,
+ category: emoji.category,
+ host: emoji.host,
+ url: emoji.url,
+ };
+ }
+
+ public packMany(
+ emojis: any[],
+ ) {
+ return Promise.all(emojis.map(x => this.pack(x)));
+ }
+}