From a439aac7e77b99885fb16a0c9a8cfc150b32d7b3 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 5 Jun 2023 12:38:30 +0800 Subject: [PATCH] feat: update api to include preview image --- packages/api/src/generated/graphql.ts | 1 + packages/api/src/generated/schema.graphql | 1 + packages/api/src/resolvers/update/index.ts | 7 ++++--- packages/api/src/schema.ts | 1 + packages/api/test/resolvers/update.test.ts | 14 +++++++++----- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index 7a259576f..e722f0d57 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -2874,6 +2874,7 @@ export type UpdatePageInput = { byline?: InputMaybe; description?: InputMaybe; pageId: Scalars['ID']; + previewImage?: InputMaybe; publishedAt?: InputMaybe; savedAt?: InputMaybe; title?: InputMaybe; diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index ab629b0c8..e8d6cb93c 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -2219,6 +2219,7 @@ input UpdatePageInput { byline: String description: String pageId: ID! + previewImage: String publishedAt: Date savedAt: Date title: String diff --git a/packages/api/src/resolvers/update/index.ts b/packages/api/src/resolvers/update/index.ts index 0570e43b8..409b31771 100644 --- a/packages/api/src/resolvers/update/index.ts +++ b/packages/api/src/resolvers/update/index.ts @@ -1,13 +1,13 @@ +import { getPageById, updatePage } from '../../elastic/pages' +import { Page } from '../../elastic/types' import { MutationUpdatePageArgs, UpdatePageError, UpdatePageErrorCode, UpdatePageSuccess, } from '../../generated/graphql' -import { authorized, userDataToUser } from '../../utils/helpers' -import { getPageById, updatePage } from '../../elastic/pages' -import { Page } from '../../entity/page' import { Merge } from '../../util' +import { authorized, userDataToUser } from '../../utils/helpers' export type UpdatePageSuccessPartial = Merge< UpdatePageSuccess, @@ -42,6 +42,7 @@ export const updatePageResolver = authorized< author: input.byline ?? undefined, savedAt: input.savedAt ? new Date(input.savedAt) : undefined, publishedAt: input.publishedAt ? new Date(input.publishedAt) : undefined, + image: input.previewImage ?? undefined, } const updateResult = await updatePage(input.pageId, pageData, { ...ctx, uid }) diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index 34943c903..5b9801aa9 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -580,6 +580,7 @@ const schema = gql` byline: String savedAt: Date publishedAt: Date + previewImage: String @sanitize } type UpdatePageSuccess { diff --git a/packages/api/test/resolvers/update.test.ts b/packages/api/test/resolvers/update.test.ts index 7ac09d563..290325b6b 100644 --- a/packages/api/test/resolvers/update.test.ts +++ b/packages/api/test/resolvers/update.test.ts @@ -1,9 +1,9 @@ -import { createTestUser, deleteTestUser } from '../db' -import { createTestElasticPage, graphqlRequest, request } from '../util' import { expect } from 'chai' import 'mocha' -import { User } from '../../src/entity/user' import { Page } from '../../src/elastic/types' +import { User } from '../../src/entity/user' +import { createTestUser, deleteTestUser } from '../db' +import { createTestElasticPage, graphqlRequest, request } from '../util' describe('Update API', () => { let user: User @@ -28,8 +28,9 @@ describe('Update API', () => { describe('update page', () => { let query: string - let title = 'New Title' - let description = 'New Description' + const title = 'New Title' + const description = 'New Description' + const previewImage = 'https://omnivore.app/image.png' beforeEach(() => { query = ` @@ -39,12 +40,14 @@ describe('Update API', () => { pageId: "${page.id}" title: "${title}" description: "${description}" + previewImage: "${previewImage}" } ) { ... on UpdatePageSuccess { updatedPage { title description + image } } ... on UpdatePageError { @@ -61,6 +64,7 @@ describe('Update API', () => { const updatedPage = res?.body.data.updatePage.updatedPage expect(updatedPage?.title).to.eql(title) expect(updatedPage?.description).to.eql(description) + expect(updatedPage?.image).to.eql(previewImage) }) }) })