From 0715991f9717d67b61b326b8ab0e2b938284a150 Mon Sep 17 00:00:00 2001 From: GeorgeWebberley Date: Sun, 1 Mar 2026 12:32:23 +0100 Subject: [PATCH] Updaed graphql api with ResolveField for download URL --- src/cases/cases.resolver.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/cases/cases.resolver.ts b/src/cases/cases.resolver.ts index 6d084c0..44ea432 100644 --- a/src/cases/cases.resolver.ts +++ b/src/cases/cases.resolver.ts @@ -4,11 +4,13 @@ import type { FileUpload } from 'graphql-upload-ts'; import { CasesService } from './cases.service'; import { CaseLaw } from './entities/case-law.entity'; import { CaseFileValidationPipe } from 'src/common/pipes/file-validation.pipe'; +import { StorageService } from 'src/common/storage/storage.service'; @Resolver(() => CaseLaw) export class CasesResolver { constructor( private readonly casesService: CasesService, + private readonly storage: StorageService, ) {} @@ -20,6 +22,14 @@ export class CasesResolver { return this.casesService.findOne(id, caseNumber); } + @ResolveField(() => String, { name: 'downloadUrl', nullable: true }) + async getDownloadUrl(@Parent() caseLaw: CaseLaw): Promise { + const key = caseLaw.storageKey; + if (!key) return null; + + return this.storage.getPresignedUrl(key); + } + @Mutation(() => CaseLaw) async uploadCase( @Args({ name: 'file', type: () => GraphQLUpload }, CaseFileValidationPipe)