Merge pull request #3131 from omnivore-app/fix/following-api

fix/following api
This commit is contained in:
Hongbo Wu
2023-11-16 11:55:06 +08:00
committed by GitHub
6 changed files with 31 additions and 8 deletions

View File

@ -94,6 +94,7 @@ export type Article = {
contentReader: ContentReader;
createdAt: Scalars['Date'];
description?: Maybe<Scalars['String']>;
folder: Scalars['String'];
hasContent?: Maybe<Scalars['Boolean']>;
hash: Scalars['String'];
highlights: Array<Highlight>;
@ -2290,16 +2291,20 @@ export type SearchItem = {
contentReader: ContentReader;
createdAt: Scalars['Date'];
description?: Maybe<Scalars['String']>;
folder: Scalars['String'];
highlights?: Maybe<Array<Highlight>>;
id: Scalars['ID'];
image?: Maybe<Scalars['String']>;
isArchived: Scalars['Boolean'];
labels?: Maybe<Array<Label>>;
language?: Maybe<Scalars['String']>;
links?: Maybe<Scalars['JSON']>;
originalArticleUrl?: Maybe<Scalars['String']>;
ownedByViewer?: Maybe<Scalars['Boolean']>;
pageId?: Maybe<Scalars['ID']>;
pageType: PageType;
previewContent?: Maybe<Scalars['String']>;
previewContentType?: Maybe<Scalars['String']>;
publishedAt?: Maybe<Scalars['Date']>;
quote?: Maybe<Scalars['String']>;
readAt?: Maybe<Scalars['Date']>;
@ -4402,6 +4407,7 @@ export type ArticleResolvers<ContextType = ResolverContext, ParentType extends R
contentReader?: Resolver<ResolversTypes['ContentReader'], ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
folder?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
hasContent?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
hash?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
highlights?: Resolver<Array<ResolversTypes['Highlight']>, ParentType, ContextType, Partial<ArticleHighlightsArgs>>;
@ -5695,16 +5701,20 @@ export type SearchItemResolvers<ContextType = ResolverContext, ParentType extend
contentReader?: Resolver<ResolversTypes['ContentReader'], ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
folder?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
highlights?: Resolver<Maybe<Array<ResolversTypes['Highlight']>>, ParentType, ContextType>;
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
image?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
isArchived?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
labels?: Resolver<Maybe<Array<ResolversTypes['Label']>>, ParentType, ContextType>;
language?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
links?: Resolver<Maybe<ResolversTypes['JSON']>, ParentType, ContextType>;
originalArticleUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
ownedByViewer?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
pageId?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
pageType?: Resolver<ResolversTypes['PageType'], ParentType, ContextType>;
previewContent?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
previewContentType?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
publishedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
quote?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
readAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;

View File

@ -69,6 +69,7 @@ type Article {
contentReader: ContentReader!
createdAt: Date!
description: String
folder: String!
hasContent: Boolean
hash: String!
highlights(input: ArticleHighlightsInput): [Highlight!]!
@ -1746,16 +1747,20 @@ type SearchItem {
contentReader: ContentReader!
createdAt: Date!
description: String
folder: String!
highlights: [Highlight!]
id: ID!
image: String
isArchived: Boolean!
labels: [Label!]
language: String
links: JSON
originalArticleUrl: String
ownedByViewer: Boolean
pageId: ID
pageType: PageType!
previewContent: String
previewContentType: String
publishedAt: Date
quote: String
readAt: Date

View File

@ -193,7 +193,7 @@ export const createArticleResolver = authorized<
let domContent = null
let itemType = PageType.Unknown
const DUMMY_RESPONSE = {
const DUMMY_RESPONSE: CreateArticleSuccess = {
user,
created: false,
createdArticle: {
@ -215,6 +215,7 @@ export const createArticleResolver = authorized<
highlights: [],
savedAt: new Date(),
updatedAt: new Date(),
folder: '',
},
}

View File

@ -396,6 +396,7 @@ const schema = gql`
readAt: Date
recommendations: [Recommendation!]
wordsCount: Int
folder: String!
}
# Query: article
@ -1611,6 +1612,10 @@ const schema = gql`
wordsCount: Int
content: String
archivedAt: Date
previewContent: String
previewContentType: String
links: JSON
folder: String!
}
type SearchItemEdge {

View File

@ -5,11 +5,7 @@ import * as dotenv from 'dotenv' // see https://github.com/motdotla/dotenv#how-d
import * as jwt from 'jsonwebtoken'
import Parser, { Item } from 'rss-parser'
import { promisify } from 'util'
import {
CONTENT_FETCH_URL,
createCloudTask,
FOLLOWING_HANDLER_URL,
} from './task'
import { CONTENT_FETCH_URL, createCloudTask } from './task'
interface RssFeedRequest {
subscriptionIds: string[]
@ -189,8 +185,15 @@ const createFollowingTask = async (
try {
console.log('Creating task', input.url)
const serviceBaseUrl = process.env.INTERNAL_SVC_ENDPOINT
const token = process.env.PUBSUB_VERIFICATION_TOKEN
if (!serviceBaseUrl || !token) {
throw 'Environment not configured correctly'
}
// save page
const task = await createCloudTask(FOLLOWING_HANDLER_URL, input)
const taskHandlerUrl = `${serviceBaseUrl}svc/following/save?token=${token}`
const task = await createCloudTask(taskHandlerUrl, input)
console.log('Created task', task)
return !!task

View File

@ -4,7 +4,6 @@ import { CloudTasksClient, protos } from '@google-cloud/tasks'
const cloudTask = new CloudTasksClient()
export const CONTENT_FETCH_URL = process.env.CONTENT_FETCH_GCF_URL
export const FOLLOWING_HANDLER_URL = process.env.FOLLOWING_HANDLER_URL
export const createCloudTask = async (
taskHandlerUrl: string | undefined,