diff options
Diffstat (limited to 'src/models/repositories/user.ts')
| -rw-r--r-- | src/models/repositories/user.ts | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts index 3a6ab48c5f..53c06f3f16 100644 --- a/src/models/repositories/user.ts +++ b/src/models/repositories/user.ts @@ -1,10 +1,11 @@ import $ from 'cafy'; import { EntityRepository, Repository, In, Not } from 'typeorm'; import { User, ILocalUser, IRemoteUser } from '../entities/user'; -import { Emojis, Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '..'; +import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '..'; import config from '../../config'; import { SchemaType } from '../../misc/schema'; import { awaitAll } from '../../prelude/await-all'; +import { populateEmojis } from '../../misc/populate-emojis'; export type PackedUser = SchemaType<typeof packedUserSchema>; @@ -160,10 +161,11 @@ export class UserRepository extends Repository<User> { const meId = me ? typeof me === 'string' ? me : me.id : null; const relation = meId && (meId !== user.id) && opts.detail ? await this.getRelation(meId, user.id) : null; - const pins = opts.detail ? await UserNotePinings.find({ - where: { userId: user.id }, - order: { id: 'DESC' } - }) : []; + const pins = opts.detail ? await UserNotePinings.createQueryBuilder('pin') + .where('pin.userId = :userId', { userId: user.id }) + .innerJoinAndSelect('pin.note', 'note') + .orderBy('pin.id', 'DESC') + .getMany() : []; const profile = opts.detail ? await UserProfiles.findOneOrFail(user.id) : null; const falsy = opts.detail ? false : undefined; @@ -188,15 +190,7 @@ export class UserRepository extends Repository<User> { faviconUrl: instance.faviconUrl, themeColor: instance.themeColor, } : undefined) : undefined, - - // カスタム絵文字添付 - emojis: user.emojis.length > 0 ? Emojis.find({ - where: { - name: In(user.emojis), - host: user.host - }, - select: ['name', 'host', 'url', 'aliases'] - }) : [], + emojis: populateEmojis(user.emojis, user.host), ...(opts.detail ? { url: profile!.url, @@ -218,7 +212,7 @@ export class UserRepository extends Repository<User> { followingCount: user.followingCount, notesCount: user.notesCount, pinnedNoteIds: pins.map(pin => pin.noteId), - pinnedNotes: Notes.packMany(pins.map(pin => pin.noteId), meId, { + pinnedNotes: Notes.packMany(pins.map(pin => pin.note!), meId, { detail: true }), pinnedPageId: profile!.pinnedPageId, |