summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/ApLogService.ts
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-02-02 23:19:41 -0500
committerHazelnoot <acomputerdog@gmail.com>2025-02-16 19:25:42 -0500
commit9de5ecae518973e29f63bde51062aa0ed7eadb11 (patch)
treef6c632f85b56cf820ae5344f5efb9b11ee0a06ff /packages/backend/src/core/ApLogService.ts
parentfix unit tests using mock-resolver (diff)
downloadsharkey-9de5ecae518973e29f63bde51062aa0ed7eadb11.tar.gz
sharkey-9de5ecae518973e29f63bde51062aa0ed7eadb11.tar.bz2
sharkey-9de5ecae518973e29f63bde51062aa0ed7eadb11.zip
delete fetch logs when a note or user is deleted
Diffstat (limited to 'packages/backend/src/core/ApLogService.ts')
-rw-r--r--packages/backend/src/core/ApLogService.ts20
1 files changed, 19 insertions, 1 deletions
diff --git a/packages/backend/src/core/ApLogService.ts b/packages/backend/src/core/ApLogService.ts
index 362eba24be..096ec21de7 100644
--- a/packages/backend/src/core/ApLogService.ts
+++ b/packages/backend/src/core/ApLogService.ts
@@ -5,7 +5,7 @@
import { createHash } from 'crypto';
import { Inject, Injectable } from '@nestjs/common';
-import { LessThan } from 'typeorm';
+import { In, LessThan } from 'typeorm';
import { DI } from '@/di-symbols.js';
import { SkApFetchLog, SkApInboxLog, SkApContext } from '@/models/_.js';
import type { ApContextsRepository, ApFetchLogsRepository, ApInboxLogsRepository } from '@/models/_.js';
@@ -122,6 +122,24 @@ export class ApLogService {
}
/**
+ * Deletes all logged copies of an object or objects
+ * @param objectUris URIs / AP IDs of the objects to delete
+ */
+ public async deleteObjectLogs(objectUris: string | string[]): Promise<number> {
+ if (Array.isArray(objectUris)) {
+ const logsDeleted = await this.apFetchLogsRepository.delete({
+ objectUri: In(objectUris),
+ });
+ return logsDeleted.affected ?? 0;
+ } else {
+ const logsDeleted = await this.apFetchLogsRepository.delete({
+ objectUri: objectUris,
+ });
+ return logsDeleted.affected ?? 0;
+ }
+ }
+
+ /**
* Deletes all expired AP logs and garbage-collects the AP context cache.
* Returns the total number of deleted rows.
*/