Skip to content

Commit 5dc3db2

Browse files
committed
refactor(blob-registry): pass cause as a parameter to deregister
1 parent 7fe1724 commit 5dc3db2

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

Diff for: packages/upload-api/src/blob/remove.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import * as API from '../types.js'
88
* @returns {API.ServiceMethod<API.SpaceBlobRemove, API.SpaceBlobRemoveSuccess, API.SpaceBlobRemoveFailure>}
99
*/
1010
export function blobRemoveProvider(context) {
11-
return Server.provide(SpaceBlob.remove, async ({ capability }) => {
11+
return Server.provide(SpaceBlob.remove, async ({ capability, invocation }) => {
1212
const space = capability.with
1313
const digest = Digest.decode(capability.nb.digest)
1414

@@ -20,7 +20,7 @@ export function blobRemoveProvider(context) {
2020
return exists
2121
}
2222

23-
const dereg = await context.registry.deregister(space, digest)
23+
const dereg = await context.registry.deregister({space, digest, cause: invocation.link()})
2424
if (dereg.error) {
2525
// unlikely as we just found it...but possible I guess
2626
if (dereg.error.name === 'EntryNotFound') {

Diff for: packages/upload-api/src/types/blob.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,7 @@ export interface Registry {
6060
options?: ListOptions
6161
) => Promise<Result<ListResponse<Entry>, Failure>>
6262
/** Removes an item from the registry if it exists. */
63-
deregister: (
64-
space: SpaceDID,
65-
digest: MultihashDigest
66-
) => Promise<Result<Unit, EntryNotFound>>
63+
deregister: (item: DeregistrationData) => Promise<Result<Unit, EntryNotFound>>
6764
}
6865

6966
export interface ListOptions {
@@ -76,6 +73,12 @@ export interface BlobModel {
7673
size: number
7774
}
7875

76+
export interface DeregistrationData {
77+
space: SpaceDID,
78+
digest: MultihashDigest,
79+
cause: Link
80+
}
81+
7982
export interface RegistrationData {
8083
space: SpaceDID
8184
cause: Link

Diff for: packages/upload-api/test/storage/blob-registry-tests.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ export const test = {
137137
const { registry } = context
138138
const data = new Uint8Array([11, 22, 34, 44, 55])
139139
const digest = await sha256.digest(data)
140-
const dereg = await registry.deregister(space, digest)
140+
const cause = await randomCID()
141+
const dereg = await registry.deregister({space, digest, cause})
141142
assert.ok(dereg.error)
142143
assert.equal(dereg.error?.name, EntryNotFound.name)
143144
},
@@ -155,7 +156,8 @@ export const test = {
155156
const find0 = await registry.find(space, digest)
156157
assert.ok(find0.ok)
157158

158-
const dereg = await registry.deregister(space, digest)
159+
const deregCause = await randomCID()
160+
const dereg = await registry.deregister({space, digest, cause: deregCause})
159161
assert.ok(dereg.ok)
160162

161163
const find1 = await registry.find(space, digest)

Diff for: packages/upload-api/test/storage/blob-registry.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class Registry {
2929
}
3030

3131
/** @type {API.BlobAPI.Registry['deregister']} */
32-
async deregister(space, digest) {
32+
async deregister({space, digest, cause}) {
3333
const entries = this.data.get(space) ?? []
3434
const entry = entries.find((e) => equals(e.blob.digest.bytes, digest.bytes))
3535
if (!entry) return error(new EntryNotFound())

0 commit comments

Comments
 (0)