From 6f315ef4d92e1b9ee3eb7e3c61d032d022ca1689 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Wed, 16 Aug 2023 21:19:03 +0800 Subject: [PATCH] create a transaction for uploading files in the upload_files resolver --- .../api/src/resolvers/upload_files/index.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/api/src/resolvers/upload_files/index.ts b/packages/api/src/resolvers/upload_files/index.ts index 180cc96e3..b529d2412 100644 --- a/packages/api/src/resolvers/upload_files/index.ts +++ b/packages/api/src/resolvers/upload_files/index.ts @@ -40,7 +40,7 @@ export const uploadFileRequestResolver: ResolverFn< WithDataSourcesContext, MutationUploadFileRequestArgs > = async (_obj, { input }, ctx) => { - const { models, kx, claims, log } = ctx + const { models, authTrx, claims, log } = ctx let uploadFileData: { id: string | null } = { id: null, } @@ -98,8 +98,9 @@ export const uploadFileRequestResolver: ResolverFn< }) if (uploadFileData.id) { + const uploadFileId = uploadFileData.id const uploadFilePathName = generateUploadFilePathName( - uploadFileData.id, + uploadFileId, fileName ) const uploadSignedUrl = await generateUploadSignedUrl( @@ -111,9 +112,15 @@ export const uploadFileRequestResolver: ResolverFn< // If this is a file URL, we swap in the GCS public URL if (isFileUrl(input.url)) { - await models.uploadFile.update(uploadFileData.id, { - url: publicUrl, - status: UploadFileStatus.Initialized, + await authTrx(async (tx) => { + await models.uploadFile.update( + uploadFileId, + { + url: publicUrl, + status: UploadFileStatus.Initialized, + }, + tx + ) }) }