From fa2b58eac0b727ab733a5f30bf0bc822d4dcee75 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 8 Jun 2022 20:17:47 -0700 Subject: [PATCH] When creating a page during an uploadfile request return its ID --- packages/api/src/generated/graphql.ts | 2 ++ packages/api/src/generated/schema.graphql | 1 + .../api/src/resolvers/upload_files/index.ts | 29 +++++++++++++------ packages/api/src/schema.ts | 1 + 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index 0d6c61757..3ba5fac2f 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -2159,6 +2159,7 @@ export type UploadFileRequestResult = UploadFileRequestError | UploadFileRequest export type UploadFileRequestSuccess = { __typename?: 'UploadFileRequestSuccess'; + createdPageId?: Maybe; id: Scalars['ID']; uploadFileId?: Maybe; uploadSignedUrl?: Maybe; @@ -4236,6 +4237,7 @@ export type UploadFileRequestResultResolvers = { + createdPageId?: Resolver, ParentType, ContextType>; id?: Resolver; uploadFileId?: Resolver, ParentType, ContextType>; uploadSignedUrl?: Resolver, ParentType, ContextType>; diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index e6bc40037..3c7d6a604 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -1665,6 +1665,7 @@ input UploadFileRequestInput { union UploadFileRequestResult = UploadFileRequestError | UploadFileRequestSuccess type UploadFileRequestSuccess { + createdPageId: String id: ID! uploadFileId: ID uploadSignedUrl: String diff --git a/packages/api/src/resolvers/upload_files/index.ts b/packages/api/src/resolvers/upload_files/index.ts index 5e49aa0ac..d0888c3f8 100644 --- a/packages/api/src/resolvers/upload_files/index.ts +++ b/packages/api/src/resolvers/upload_files/index.ts @@ -82,20 +82,26 @@ export const uploadFileRequestResolver: ResolverFn< input.contentType ) + let createdPageId: string | undefined = undefined if (input.createPageEntry) { const page = await getPageByParam({ userId: claims.uid, url: input.url, }) if (page) { - await updatePage( - page.id, - { - savedAt: new Date(), - archivedAt: null, - }, - ctx - ) + if ( + !(await updatePage( + page.id, + { + savedAt: new Date(), + archivedAt: null, + }, + ctx + )) + ) { + return { errorCodes: [UploadFileRequestErrorCode.FailedCreate] } + } + createdPageId = page.id } else { const pageId = await createPage( { @@ -119,10 +125,15 @@ export const uploadFileRequestResolver: ResolverFn< if (!pageId) { return { errorCodes: [UploadFileRequestErrorCode.FailedCreate] } } + createdPageId = pageId } } - return { id: uploadFileData.id, uploadSignedUrl } + return { + id: uploadFileData.id, + uploadSignedUrl, + createdPageId: createdPageId, + } } else { return { errorCodes: [UploadFileRequestErrorCode.FailedCreate] } } diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index 8bc6bb36b..cc581c3dd 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -435,6 +435,7 @@ const schema = gql` id: ID! uploadSignedUrl: String uploadFileId: ID + createdPageId: String } # Mutation: createArticle