From 276205d52a0e7b8ba22fb45f81944cce3a2c9ecc Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 24 Feb 2022 11:46:51 +0800 Subject: [PATCH] add linkId and labels in article type --- packages/api/src/datalayer/links/index.ts | 1 + packages/api/src/generated/graphql.ts | 4 ++++ packages/api/src/generated/schema.graphql | 2 ++ packages/api/src/resolvers/function_resolvers.ts | 10 ++++++++++ packages/api/src/schema.ts | 2 ++ 5 files changed, 19 insertions(+) diff --git a/packages/api/src/datalayer/links/index.ts b/packages/api/src/datalayer/links/index.ts index 02374e26b..48885a347 100644 --- a/packages/api/src/datalayer/links/index.ts +++ b/packages/api/src/datalayer/links/index.ts @@ -36,6 +36,7 @@ type UserArticleStats = { } const LINK_COLS = [ + 'omnivore.links.id as linkId', 'omnivore.links.userId', 'omnivore.links.slug', 'omnivore.links.article_url as url', diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index c844284eb..35ed9737b 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -53,6 +53,8 @@ export type Article = { id: Scalars['ID']; image?: Maybe; isArchived: Scalars['Boolean']; + labels?: Maybe>; + linkId?: Maybe; originalArticleUrl?: Maybe; originalHtml?: Maybe; pageType?: Maybe; @@ -2387,6 +2389,8 @@ export type ArticleResolvers; image?: Resolver, ParentType, ContextType>; isArchived?: Resolver; + labels?: Resolver>, ParentType, ContextType>; + linkId?: Resolver, ParentType, ContextType>; originalArticleUrl?: Resolver, ParentType, ContextType>; originalHtml?: Resolver, ParentType, ContextType>; pageType?: Resolver, ParentType, ContextType>; diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index 0e7793c8d..b6adbb67f 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -34,6 +34,8 @@ type Article { id: ID! image: String isArchived: Boolean! + labels: [Label!] + linkId: ID originalArticleUrl: String originalHtml: String pageType: PageType diff --git a/packages/api/src/resolvers/function_resolvers.ts b/packages/api/src/resolvers/function_resolvers.ts index 47858f573..9a2641952 100644 --- a/packages/api/src/resolvers/function_resolvers.ts +++ b/packages/api/src/resolvers/function_resolvers.ts @@ -79,6 +79,9 @@ import { generateDownloadSignedUrl, generateUploadFilePathName, } from '../utils/uploads' +import { getRepository } from 'typeorm' +import { Link } from '../entity/link' +import { Label } from '../entity/label' /* eslint-disable @typescript-eslint/naming-convention */ type ResultResolveType = { @@ -425,6 +428,13 @@ export const functionResolvers = { ctx.models ) }, + async labels(article: { linkId: string }): Promise { + console.log('labels', article.linkId) + const link = await getRepository(Link).findOne(article.linkId, { + relations: ['labels'], + }) + return link?.labels + }, }, ArticleSavingRequest: { async article( diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index 6d4f32525..bd7d5d21b 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -333,6 +333,8 @@ const schema = gql` highlights(input: ArticleHighlightsInput): [Highlight!]! shareInfo: LinkShareInfo isArchived: Boolean! + linkId: ID + labels: [Label!] } # Query: article