refactoring

This commit is contained in:
syuilo 2021-03-22 11:38:32 +09:00
parent e881e1bfb3
commit 0e6fbdfa5b
2 changed files with 9 additions and 9 deletions

View File

@ -235,7 +235,7 @@ export class NoteRepository extends Repository<Note> {
}
public async packMany(
notes: (Note['id'] | Note)[],
notes: Note[],
me?: User['id'] | User | null | undefined,
options?: {
detail?: boolean;
@ -245,11 +245,10 @@ export class NoteRepository extends Repository<Note> {
if (notes.length === 0) return [];
const meId = me ? typeof me === 'string' ? me : me.id : null;
const noteIds = notes.map(n => typeof n === 'object' ? n.id : n);
const myReactionsMap = new Map<Note['id'], NoteReaction | null>();
if (meId) {
const renoteIds = notes.filter(n => (typeof n === 'object') && (n.renoteId != null)).map(n => (n as Note).renoteId!);
const targets = [...noteIds, ...renoteIds];
const renoteIds = notes.filter(n => n.renoteId != null).map(n => n.renoteId!);
const targets = [...notes.map(n => n.id), ...renoteIds];
const myReactions = await NoteReactions.find({
userId: meId,
noteId: In(targets),

View File

@ -161,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('id', 'DESC')
.getMany() : [];
const profile = opts.detail ? await UserProfiles.findOneOrFail(user.id) : null;
const falsy = opts.detail ? false : undefined;
@ -211,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,