Page MenuHomePhabricator

D13734.id45236.diff
No OneTemporary

D13734.id45236.diff

diff --git a/keyserver/src/deleters/farcaster-channel-tag-deleters.js b/keyserver/src/deleters/farcaster-channel-tag-deleters.js
--- a/keyserver/src/deleters/farcaster-channel-tag-deleters.js
+++ b/keyserver/src/deleters/farcaster-channel-tag-deleters.js
@@ -1,7 +1,7 @@
// @flow
import { farcasterChannelTagBlobHash } from 'lib/shared/community-utils.js';
-import type { DeleteFarcasterChannelTagRequest } from 'lib/types/community-types';
+import type { DeleteFarcasterChannelTagRequest } from 'lib/types/community-types.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
import { ServerError } from 'lib/utils/errors.js';
diff --git a/keyserver/src/deleters/thread-deleters.js b/keyserver/src/deleters/thread-deleters.js
--- a/keyserver/src/deleters/thread-deleters.js
+++ b/keyserver/src/deleters/thread-deleters.js
@@ -1,6 +1,7 @@
// @flow
import { permissionLookup } from 'lib/permissions/thread-permissions.js';
+import { farcasterChannelTagBlobHash } from 'lib/shared/community-utils.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
import {
type ThreadDeletionRequest,
@@ -19,7 +20,7 @@
import { fetchThreadPermissionsBlob } from '../fetchers/thread-permission-fetchers.js';
import { fetchUpdateInfoForThreadDeletion } from '../fetchers/update-fetchers.js';
import { rescindPushNotifs } from '../push/rescind.js';
-import { removeBlobHolders } from '../services/blob.js';
+import { removeBlobHolders, deleteBlob } from '../services/blob.js';
import type { Viewer } from '../session/viewer.js';
import { blobHoldersFromUploadRows } from '../uploads/media-utils.js';
@@ -108,6 +109,22 @@
}
async function deleteThreads(threadIDs: $ReadOnlyArray<string>): Promise<void> {
+ const [farcasterChannelTagQueryResult] = await dbQuery(SQL`
+ SELECT farcaster_channel_id AS farcasterChannelID, blob_holder AS blobHolder
+ FROM communities
+ WHERE id IN (${threadIDs})
+ `);
+ const farcasterChannelTagDeletionPromise = Promise.all(
+ farcasterChannelTagQueryResult.map(({ farcasterChannelID, blobHolder }) =>
+ deleteBlob(
+ {
+ hash: farcasterChannelTagBlobHash(farcasterChannelID),
+ holder: blobHolder,
+ },
+ true,
+ ),
+ ),
+ );
const deletionQuery = SQL`
START TRANSACTION;
DELETE FROM threads WHERE id IN (${threadIDs});
@@ -143,6 +160,7 @@
await Promise.all([
dbQuery(deletionQuery, { multipleStatements: true }),
deleteInviteLinksForThreadIDs(threadIDs),
+ farcasterChannelTagDeletionPromise,
]);
}

File Metadata

Mime Type
text/plain
Expires
Fri, Oct 18, 6:21 AM (8 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2314564
Default Alt Text
D13734.id45236.diff (2 KB)

Event Timeline