fix feed url in pdf file not saved

This commit is contained in:
Hongbo Wu
2023-11-28 17:44:28 +08:00
parent ee7f921fd1
commit 3759e10615
8 changed files with 40 additions and 7 deletions

View File

@ -275,6 +275,9 @@ export type CreateArticleInput = {
folder?: InputMaybe<Scalars['String']>;
labels?: InputMaybe<Array<CreateLabelInput>>;
preparedDocument?: InputMaybe<PreparedDocumentInput>;
publishedAt?: InputMaybe<Scalars['Date']>;
rssFeedUrl?: InputMaybe<Scalars['String']>;
savedAt?: InputMaybe<Scalars['Date']>;
skipParsing?: InputMaybe<Scalars['Boolean']>;
source?: InputMaybe<Scalars['String']>;
state?: InputMaybe<ArticleSavingRequestStatus>;

View File

@ -232,6 +232,9 @@ input CreateArticleInput {
folder: String
labels: [CreateLabelInput!]
preparedDocument: PreparedDocumentInput
publishedAt: Date
rssFeedUrl: String
savedAt: Date
skipParsing: Boolean
source: String
state: ArticleSavingRequestStatus

View File

@ -138,6 +138,9 @@ export const createArticleResolver = authorized<
state,
labels: inputLabels,
folder,
rssFeedUrl,
savedAt,
publishedAt,
},
},
{ log, uid, pubsub }
@ -215,9 +218,11 @@ export const createArticleResolver = authorized<
readingProgressAnchorIndex: 0,
readingProgressPercent: 0,
highlights: [],
savedAt: new Date(),
savedAt: savedAt || new Date(),
updatedAt: new Date(),
folder: '',
publishedAt,
subscription: rssFeedUrl,
},
}
@ -252,6 +257,9 @@ export const createArticleResolver = authorized<
state: state || undefined,
labels: inputLabels || undefined,
folder: folder || undefined,
savedAt,
publishedAt,
subscription: rssFeedUrl || undefined,
})
return DUMMY_RESPONSE
} else if (!skipParsing && preparedDocument?.document) {
@ -274,6 +282,9 @@ export const createArticleResolver = authorized<
state: state || undefined,
labels: inputLabels || undefined,
folder: folder || undefined,
savedAt,
publishedAt,
subscription: rssFeedUrl || undefined,
})
return DUMMY_RESPONSE
}
@ -294,6 +305,9 @@ export const createArticleResolver = authorized<
uploadFileId,
state,
folder,
publishedAt,
rssFeedUrl,
savedAt,
})
log.info('New article saving', {

View File

@ -497,6 +497,9 @@ const schema = gql`
state: ArticleSavingRequestStatus
labels: [CreateLabelInput!]
folder: String
rssFeedUrl: String
savedAt: Date
publishedAt: Date
}
enum CreateArticleErrorCode {
UNABLE_TO_FETCH

View File

@ -36,6 +36,7 @@ interface PageSaveRequest {
savedAt?: Date
publishedAt?: Date
folder?: string
subscription?: string
}
const SAVING_CONTENT = 'Your link is being saved...'
@ -91,6 +92,7 @@ export const createPageSaveRequest = async ({
savedAt,
publishedAt,
folder,
subscription,
}: PageSaveRequest): Promise<ArticleSavingRequest> => {
try {
validateUrl(url)
@ -128,6 +130,8 @@ export const createPageSaveRequest = async ({
state: LibraryItemState.Processing,
publishedAt,
folder,
subscription,
savedAt,
},
userId,
pubsub
@ -161,6 +165,7 @@ export const createPageSaveRequest = async ({
savedAt,
publishedAt,
folder,
rssFeedUrl: subscription,
})
return libraryItemToArticleSavingRequest(user, libraryItem)

View File

@ -93,7 +93,7 @@ export const savePage = async (
itemType: parseResult.pageType,
originalHtml: parseResult.domContent,
canonicalUrl: parseResult.canonicalUrl,
saveTime: input.savedAt ? new Date(input.savedAt) : new Date(),
savedAt: input.savedAt ? new Date(input.savedAt) : new Date(),
publishedAt: input.publishedAt ? new Date(input.publishedAt) : undefined,
state: input.state || undefined,
rssFeedUrl: input.rssFeedUrl,
@ -214,7 +214,7 @@ export const parsedContentToLibraryItem = ({
itemType,
uploadFileHash,
uploadFileId,
saveTime,
savedAt,
publishedAt,
state,
rssFeedUrl,
@ -233,7 +233,7 @@ export const parsedContentToLibraryItem = ({
canonicalUrl?: string | null
uploadFileHash?: string | null
uploadFileId?: string | null
saveTime?: Date
savedAt?: Date
publishedAt?: Date | null
state?: ArticleSavingRequestStatus | null
rssFeedUrl?: string | null
@ -268,8 +268,7 @@ export const parsedContentToLibraryItem = ({
state: state
? (state as unknown as LibraryItemState)
: LibraryItemState.Succeeded,
createdAt: validatedDate(saveTime),
savedAt: validatedDate(saveTime),
savedAt: validatedDate(savedAt),
siteName: parsedContent?.siteName,
itemLanguage: parsedContent?.language,
siteIcon: parsedContent?.siteIcon,

View File

@ -237,6 +237,7 @@ export const enqueueParseRequest = async ({
savedAt,
publishedAt,
folder,
rssFeedUrl,
}: {
url: string
userId: string
@ -250,6 +251,7 @@ export const enqueueParseRequest = async ({
savedAt?: Date
publishedAt?: Date
folder?: string
rssFeedUrl?: string
}): Promise<string> => {
const { GOOGLE_CLOUD_PROJECT } = process.env
const payload = {
@ -263,6 +265,7 @@ export const enqueueParseRequest = async ({
savedAt,
publishedAt,
folder,
rssFeedUrl,
}
// If there is no Google Cloud Project Id exposed, it means that we are in local environment

View File

@ -415,11 +415,14 @@ async function fetchContent(req, res) {
const uploadedPdf = await sendCreateArticleMutation(userId, {
url: encodeURI(finalUrl),
articleSavingRequestId,
uploadFileId: uploadedFileId,
uploadFileId,
state,
labels,
source,
folder,
rssFeedUrl,
savedAt,
publishedAt,
});
if (!uploadedPdf) {
statusCode = 500;