Skip to content

Commit b9cf2fd

Browse files
authored
feat: enhance file fetching logic in FileGatewayObjectFetcher (#523)
1 parent c2d1e09 commit b9cf2fd

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

apps/backend/src/core/objects/files/fetchers.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,18 @@ export const DBObjectFetcher: ObjectFetcher = {
4141
}
4242

4343
export const FileGatewayObjectFetcher: ObjectFetcher = {
44-
fetchFile(cid: string): Promise<Readable> {
45-
return FileGateway.getFile(cid)
44+
async fetchFile(cid: string): Promise<Readable> {
45+
const getMetadataResult = await ObjectUseCases.getMetadata(cid)
46+
if (getMetadataResult.isErr()) {
47+
throw new Error(`Object not found: cid=${cid}`)
48+
}
49+
const metadata = getMetadataResult.value
50+
51+
if (metadata.type === 'file') {
52+
return FileGateway.getFile(cid)
53+
}
54+
55+
return retrieveAndReassembleFolderAsZip(new PizZip(), cid)
4656
},
4757
async fetchNode(cid: string): Promise<Buffer> {
4858
const node = await FileGateway.getNode(cid)

0 commit comments

Comments
 (0)