From 163dbc73a65f17a7ae3747af93bf9cf70176c10c Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 10 Aug 2023 11:55:59 +0800 Subject: [PATCH] do not send content in the thumbnail task payload --- packages/api/src/services/save_email.ts | 8 ++------ packages/api/src/services/save_page.ts | 8 ++------ packages/api/src/utils/createTask.ts | 13 ++++++++----- packages/api/src/utils/helpers.ts | 2 +- packages/api/src/utils/parser.ts | 4 ++-- packages/thumbnail-handler/src/index.ts | 9 ++++----- 6 files changed, 19 insertions(+), 25 deletions(-) diff --git a/packages/api/src/services/save_email.ts b/packages/api/src/services/save_email.ts index bb1b2db6b..375b8d9ed 100644 --- a/packages/api/src/services/save_email.ts +++ b/packages/api/src/services/save_email.ts @@ -106,12 +106,8 @@ export const saveEmail = async ( // create a task to update thumbnail and pre-cache all images try { - const taskId = await enqueueThumbnailTask( - ctx.uid, - slug, - articleToSave.content - ) - logger.info('Created thumbnail task', taskId) + const taskId = await enqueueThumbnailTask(ctx.uid, slug) + logger.info('Created thumbnail task', { taskId }) } catch (e) { logger.error('Failed to create thumbnail task', e) } diff --git a/packages/api/src/services/save_page.ts b/packages/api/src/services/save_page.ts index 17753ad1d..fa01dff9c 100644 --- a/packages/api/src/services/save_page.ts +++ b/packages/api/src/services/save_page.ts @@ -187,12 +187,8 @@ export const savePage = async ( // create a task to update thumbnail and pre-cache all images try { - const taskId = await enqueueThumbnailTask( - saver.userId, - slug, - articleToSave.content - ) - logger.info('Created thumbnail task', taskId) + const taskId = await enqueueThumbnailTask(saver.userId, slug) + logger.info('Created thumbnail task', { taskId }) } catch (e) { logger.error('Failed to create thumbnail task', e) } diff --git a/packages/api/src/utils/createTask.ts b/packages/api/src/utils/createTask.ts index 9f89cc70f..c18239529 100644 --- a/packages/api/src/utils/createTask.ts +++ b/packages/api/src/utils/createTask.ts @@ -21,7 +21,7 @@ import View = google.cloud.tasks.v2.Task.View // Instantiates a client. const client = new CloudTasksClient() -const logError = (error: Error): void => { +const logError = (error: any): void => { if (axios.isAxiosError(error)) { logger.error(error.response) } else { @@ -102,7 +102,12 @@ const createHttpTaskWithToken = async ({ : null, } - return client.createTask({ parent, task }) + try { + return client.createTask({ parent, task }) + } catch (error) { + logError(error) + return null + } } export const createAppEngineTask = async ({ @@ -526,14 +531,12 @@ export const enqueueImportFromIntegration = async ( export const enqueueThumbnailTask = async ( userId: string, - slug: string, - content: string + slug: string ): Promise => { const { GOOGLE_CLOUD_PROJECT } = process.env const payload = { userId, slug, - content, } const headers = { diff --git a/packages/api/src/utils/helpers.ts b/packages/api/src/utils/helpers.ts index 789912303..74607ab33 100644 --- a/packages/api/src/utils/helpers.ts +++ b/packages/api/src/utils/helpers.ts @@ -299,7 +299,7 @@ export const isUrl = (str: string): boolean => { validateUrl(str) return true } catch { - logger.error('not an url', str) + logger.info('not an url', { url: str }) return false } } diff --git a/packages/api/src/utils/parser.ts b/packages/api/src/utils/parser.ts index 77cf29302..6b041cc96 100644 --- a/packages/api/src/utils/parser.ts +++ b/packages/api/src/utils/parser.ts @@ -505,9 +505,9 @@ export const fetchFavicon = async ( return `https://api.faviconkit.com/${domain}/128` } catch (e) { if (axios.isAxiosError(e)) { - logger.error('failed to get favicon:', e.response?.status) + logger.error('failed to get favicon', e.response) } else { - logger.error('failed to get favicon:', e) + logger.error('failed to get favicon', e) } return undefined } diff --git a/packages/thumbnail-handler/src/index.ts b/packages/thumbnail-handler/src/index.ts index 1ed1c223b..7fa2472fa 100644 --- a/packages/thumbnail-handler/src/index.ts +++ b/packages/thumbnail-handler/src/index.ts @@ -32,7 +32,6 @@ interface UpdatePageResponse { interface ThumbnailRequest { slug: string - content: string } interface ImageSize { @@ -188,7 +187,7 @@ const updatePageMutation = async ( } const isThumbnailRequest = (body: any): body is ThumbnailRequest => { - return 'slug' in body && 'content' in body + return 'slug' in body } const fetchImage = async (url: string): Promise => { @@ -201,7 +200,7 @@ const fetchImage = async (url: string): Promise => { maxContentLength: 20000000, // 20mb }) } catch (e) { - console.error(e) + console.log('fetch image error', e) return null } } @@ -334,7 +333,7 @@ export const thumbnailHandler = Sentry.GCPFunction.wrapHttpFunction( return res.status(400).send('BAD_REQUEST') } - const { slug, content } = req.body + const { slug } = req.body try { const page = await articleQuery(uid, slug) @@ -352,7 +351,7 @@ export const thumbnailHandler = Sentry.GCPFunction.wrapHttpFunction( console.log('pre-caching all images...') // pre-cache all images in the content and get their sizes - const imageSizes = await fetchAllImageSizes(content) + const imageSizes = await fetchAllImageSizes(page.content) // find thumbnail from all images if thumbnail not set if (!page.image && imageSizes.length > 0) { console.log('finding thumbnail...')