From 2e374557bf9a459202338898754f7e59b55bed46 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 19 Mar 2024 13:03:45 +0800 Subject: [PATCH] send labels in the page_created events --- packages/api/src/services/save_file.ts | 5 +++-- packages/api/src/services/save_page.ts | 4 ++++ packages/api/src/utils/createTask.ts | 29 +++++++++++++++++--------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/packages/api/src/services/save_file.ts b/packages/api/src/services/save_file.ts index a004f1558..4ada19787 100644 --- a/packages/api/src/services/save_file.ts +++ b/packages/api/src/services/save_file.ts @@ -3,7 +3,7 @@ import { User } from '../entity/user' import { homePageURL } from '../env' import { SaveErrorCode, SaveFileInput, SaveResult } from '../generated/graphql' import { getStorageFileDetails } from '../utils/uploads' -import { createAndSaveLabelsInLibraryItem } from './labels' +import { createAndAddLabelsToLibraryItem } from './labels' import { updateLibraryItem } from './library_item' import { findUploadFileById, setFileUploadComplete } from './upload_file' @@ -39,12 +39,13 @@ export const saveFile = async ( folder: input.folder || undefined, savedAt: input.savedAt ? new Date(input.savedAt) : undefined, publishedAt: input.publishedAt ? new Date(input.publishedAt) : undefined, + labelNames: input.labels?.map((label) => label.name) || undefined, }, user.id ) // add labels to item - await createAndSaveLabelsInLibraryItem( + await createAndAddLabelsToLibraryItem( input.clientRequestId, user.id, input.labels, diff --git a/packages/api/src/services/save_page.ts b/packages/api/src/services/save_page.ts index 232ef3cad..e54b3d026 100644 --- a/packages/api/src/services/save_page.ts +++ b/packages/api/src/services/save_page.ts @@ -134,6 +134,7 @@ export const savePage = async ( feedContent: input.feedContent, dir: parseResult.parsedContent?.dir, preparedDocument, + labelNames: input.labels?.map((label) => label.name), }) const isImported = input.source === 'csv-importer' || input.source === 'pocket' @@ -213,6 +214,7 @@ export const parsedContentToLibraryItem = ({ folder, feedContent, dir, + labelNames, }: { url: string userId: string @@ -234,6 +236,7 @@ export const parsedContentToLibraryItem = ({ folder?: string | null feedContent?: string | null dir?: string | null + labelNames?: string[] }): DeepPartial & { originalUrl: string } => { logger.info('save_page', { url, state, itemId }) return { @@ -281,5 +284,6 @@ export const parsedContentToLibraryItem = ({ dir?.toLowerCase() === 'rtl' ? DirectionalityType.RTL : DirectionalityType.LTR, // default to LTR + labelNames, } } diff --git a/packages/api/src/utils/createTask.ts b/packages/api/src/utils/createTask.ts index 6d6c30baf..9dffb7d5e 100644 --- a/packages/api/src/utils/createTask.ts +++ b/packages/api/src/utils/createTask.ts @@ -15,6 +15,7 @@ import { ArticleSavingRequestStatus, CreateLabelInput, } from '../generated/graphql' +import { AISummarizeJobData, AI_SUMMARIZE_JOB_NAME } from '../jobs/ai-summarize' import { BulkActionData, BULK_ACTION_JOB_NAME } from '../jobs/bulk_action' import { CallWebhookJobData, CALL_WEBHOOK_JOB_NAME } from '../jobs/call_webhook' import { THUMBNAIL_JOB } from '../jobs/find_thumbnail' @@ -23,6 +24,12 @@ import { ExportItemJobData, EXPORT_ITEM_JOB_NAME, } from '../jobs/integration/export_item' +import { + ProcessYouTubeTranscriptJobData, + ProcessYouTubeVideoJobData, + PROCESS_YOUTUBE_TRANSCRIPT_JOB_NAME, + PROCESS_YOUTUBE_VIDEO_JOB_NAME, +} from '../jobs/process-youtube-video' import { queueRSSRefreshFeedJob, REFRESH_ALL_FEEDS_JOB_NAME, @@ -44,13 +51,6 @@ import { CreateTaskError } from './errors' import { stringToHash } from './helpers' import { logger } from './logger' import View = google.cloud.tasks.v2.Task.View -import { AISummarizeJobData, AI_SUMMARIZE_JOB_NAME } from '../jobs/ai-summarize' -import { - PROCESS_YOUTUBE_TRANSCRIPT_JOB_NAME, - PROCESS_YOUTUBE_VIDEO_JOB_NAME, - ProcessYouTubeTranscriptJobData, - ProcessYouTubeVideoJobData, -} from '../jobs/process-youtube-video' // Instantiates a client. const client = new CloudTasksClient() @@ -132,9 +132,18 @@ const createHttpTaskWithToken = async ({ > => { // If there is no Google Cloud Project Id exposed, it means that we are in local environment if (env.dev.isLocal || !project) { - logger.error( - 'error: attempting to create a cloud task but not running in google cloud.' - ) + setTimeout(() => { + axios + .post(taskHandlerUrl, payload, { + headers: { + 'Content-Type': 'application/json', + ...requestHeaders, + }, + }) + .catch((error) => { + logError(error) + }) + }) return null }