summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-03-22 11:38:32 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-03-22 11:38:32 +0900
commit0e6fbdfa5bd891cad051902d0fa5bcad4f5f8e2a (patch)
tree2efdc4719b53fee63c8f53480dfa74dd6effb8c6 /src/models
parentperf(server): Reduce database query (diff)
downloadsharkey-0e6fbdfa5bd891cad051902d0fa5bcad4f5f8e2a.tar.gz
sharkey-0e6fbdfa5bd891cad051902d0fa5bcad4f5f8e2a.tar.bz2
sharkey-0e6fbdfa5bd891cad051902d0fa5bcad4f5f8e2a.zip
refactoring
Diffstat (limited to 'src/models')
-rw-r--r--src/models/repositories/note.ts7
-rw-r--r--src/models/repositories/user.ts11
2 files changed, 9 insertions, 9 deletions
diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts
index 9771f66704..354ea4dc70 100644
--- a/src/models/repositories/note.ts
+++ b/src/models/repositories/note.ts
@@ -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),
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts
index ffece291d6..267e443cff 100644
--- a/src/models/repositories/user.ts
+++ b/src/models/repositories/user.ts
@@ -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,