refactoring
This commit is contained in:
parent
e881e1bfb3
commit
0e6fbdfa5b
|
@ -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),
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue