add: delete actions for device + slightly better ui
This commit is contained in:
@@ -284,4 +284,55 @@ export class StorageRepository {
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
listObjectKeys(
|
||||
fctx: FlowExecCtx,
|
||||
prefix?: string,
|
||||
): ResultAsync<string[], Err> {
|
||||
const startedAt = Date.now();
|
||||
logDomainEvent({
|
||||
event: "files.storage.list.started",
|
||||
fctx,
|
||||
meta: { prefix: prefix || null },
|
||||
});
|
||||
|
||||
return ResultAsync.fromPromise(
|
||||
this.storageClient.listObjectKeys(prefix),
|
||||
(error) => {
|
||||
logDomainEvent({
|
||||
level: "error",
|
||||
event: "files.storage.list.failed",
|
||||
fctx,
|
||||
durationMs: Date.now() - startedAt,
|
||||
error,
|
||||
meta: { prefix: prefix || null },
|
||||
});
|
||||
return fileErrors.storageError(
|
||||
fctx,
|
||||
error instanceof Error ? error.message : String(error),
|
||||
);
|
||||
},
|
||||
).andThen((result) => {
|
||||
if (result.error) {
|
||||
logDomainEvent({
|
||||
level: "error",
|
||||
event: "files.storage.list.failed",
|
||||
fctx,
|
||||
durationMs: Date.now() - startedAt,
|
||||
error: result.error,
|
||||
meta: { prefix: prefix || null, stage: "storage_response" },
|
||||
});
|
||||
return errAsync(fileErrors.storageError(fctx, String(result.error)));
|
||||
}
|
||||
|
||||
const keys = result.data || [];
|
||||
logDomainEvent({
|
||||
event: "files.storage.list.succeeded",
|
||||
fctx,
|
||||
durationMs: Date.now() - startedAt,
|
||||
meta: { prefix: prefix || null, count: keys.length },
|
||||
});
|
||||
return okAsync(keys);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user