summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/LatestNoteService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-06-05 02:34:57 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-06-05 02:34:57 -0400
commit05d7aa0b91525e9029b1e8a638561bf125ca32cb (patch)
treed4010119294e5ebfdd89d4c0b9543541a88d2bdd /packages/backend/src/core/LatestNoteService.ts
parentfix performance regression in mentions endpoint (diff)
downloadsharkey-05d7aa0b91525e9029b1e8a638561bf125ca32cb.tar.gz
sharkey-05d7aa0b91525e9029b1e8a638561bf125ca32cb.tar.bz2
sharkey-05d7aa0b91525e9029b1e8a638561bf125ca32cb.zip
additional fixes and cleanup to all note endpoints
Diffstat (limited to 'packages/backend/src/core/LatestNoteService.ts')
-rw-r--r--packages/backend/src/core/LatestNoteService.ts25
1 files changed, 10 insertions, 15 deletions
diff --git a/packages/backend/src/core/LatestNoteService.ts b/packages/backend/src/core/LatestNoteService.ts
index c379805506..63f973c6c6 100644
--- a/packages/backend/src/core/LatestNoteService.ts
+++ b/packages/backend/src/core/LatestNoteService.ts
@@ -7,6 +7,7 @@ import { DI } from '@/di-symbols.js';
import type { LatestNotesRepository, NotesRepository } from '@/models/_.js';
import { LoggerService } from '@/core/LoggerService.js';
import Logger from '@/logger.js';
+import { QueryService } from './QueryService.js';
@Injectable()
export class LatestNoteService {
@@ -14,11 +15,12 @@ export class LatestNoteService {
constructor(
@Inject(DI.notesRepository)
- private notesRepository: NotesRepository,
+ private readonly notesRepository: NotesRepository,
@Inject(DI.latestNotesRepository)
- private latestNotesRepository: LatestNotesRepository,
+ private readonly latestNotesRepository: LatestNotesRepository,
+ private readonly queryService: QueryService,
loggerService: LoggerService,
) {
this.logger = loggerService.getLogger('LatestNoteService');
@@ -91,7 +93,7 @@ export class LatestNoteService {
// Find the newest remaining note for the user.
// We exclude DMs and pure renotes.
- const nextLatest = await this.notesRepository
+ const query = this.notesRepository
.createQueryBuilder('note')
.select()
.where({
@@ -106,18 +108,11 @@ export class LatestNoteService {
? Not(null)
: null,
})
- .andWhere(`
- (
- note."renoteId" IS NULL
- OR note.text IS NOT NULL
- OR note.cw IS NOT NULL
- OR note."replyId" IS NOT NULL
- OR note."hasPoll"
- OR note."fileIds" != '{}'
- )
- `)
- .orderBy({ id: 'DESC' })
- .getOne();
+ .orderBy({ id: 'DESC' });
+
+ this.queryService.andIsNotRenote(query, 'note');
+
+ const nextLatest = await query.getOne();
if (!nextLatest) return;
// Record it as the latest