From 5e7a82562b3efef92d7d93d4e4bdf06cfb4d2e40 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Wed, 27 Mar 2024 16:53:29 +0800 Subject: [PATCH] resolve conflicts after rebasing --- packages/api/src/jobs/trigger_rule.ts | 2 +- packages/api/src/services/highlights.ts | 10 ++++----- packages/api/src/services/labels.ts | 8 +++---- packages/api/src/services/library_item.ts | 22 +++++++++++-------- packages/web/pages/settings/integrations.tsx | 23 ++++---------------- 5 files changed, 27 insertions(+), 38 deletions(-) diff --git a/packages/api/src/jobs/trigger_rule.ts b/packages/api/src/jobs/trigger_rule.ts index 1ff163980..76fcbd3cc 100644 --- a/packages/api/src/jobs/trigger_rule.ts +++ b/packages/api/src/jobs/trigger_rule.ts @@ -230,7 +230,7 @@ const triggerActions = async ( logger.info('Failed to filter items by metadata, running search query') const searchResult = await searchLibraryItems( { - query: `includes:${libraryItemId} AND (${rule.filter})`, + query: `includes:${data.id} AND (${rule.filter})`, size: 1, }, userId diff --git a/packages/api/src/services/highlights.ts b/packages/api/src/services/highlights.ts index 531ba640e..3893bdbc5 100644 --- a/packages/api/src/services/highlights.ts +++ b/packages/api/src/services/highlights.ts @@ -13,10 +13,10 @@ import { enqueueUpdateHighlight } from '../utils/createTask' import { deepDelete } from '../utils/helpers' import { ItemEvent } from './library_item' -const columnToDelete = ['user', 'sharedAt', 'libraryItem'] as const -type ColumnToDeleteType = typeof columnToDelete[number] +const columnsToDelete = ['user', 'sharedAt', 'libraryItem'] as const +type ColumnsToDeleteType = typeof columnsToDelete[number] export type HighlightEvent = Merge< - Omit, ColumnToDeleteType>, + Omit, ColumnsToDeleteType>, EntityEvent > @@ -63,12 +63,12 @@ export const createHighlight = async ( userId ) - const cleanData = deepDelete(newHighlight, columnToDelete) + const data = deepDelete(newHighlight, columnsToDelete) await pubsub.entityCreated( EntityType.HIGHLIGHT, { id: libraryItemId, - highlights: [cleanData], + highlights: [data], // for Readwise originalUrl: newHighlight.libraryItem.originalUrl, title: newHighlight.libraryItem.title, diff --git a/packages/api/src/services/labels.ts b/packages/api/src/services/labels.ts index f4987a4b8..dac0a3c94 100644 --- a/packages/api/src/services/labels.ts +++ b/packages/api/src/services/labels.ts @@ -15,10 +15,10 @@ import { bulkEnqueueUpdateLabels } from '../utils/createTask' import { deepDelete } from '../utils/helpers' import { findLibraryItemIdsByLabelId, ItemEvent } from './library_item' -const columnToDelete = ['description', 'createdAt'] as const -type ColumnToDeleteType = typeof columnToDelete[number] +const columnsToDelete = ['description', 'createdAt'] as const +type ColumnsToDeleteType = typeof columnsToDelete[number] export type LabelEvent = Merge< - Omit, ColumnToDeleteType>, + Omit, ColumnsToDeleteType>, EntityEvent > @@ -150,7 +150,7 @@ export const saveLabelsInLibraryItem = async ( EntityType.LABEL, { id: libraryItemId, - labels: labels.map((l) => deepDelete(l, columnToDelete)), + labels: labels.map((l) => deepDelete(l, columnsToDelete)), }, userId ) diff --git a/packages/api/src/services/library_item.ts b/packages/api/src/services/library_item.ts index a65961f74..fb8ae9c4f 100644 --- a/packages/api/src/services/library_item.ts +++ b/packages/api/src/services/library_item.ts @@ -32,16 +32,19 @@ import { parseSearchQuery } from '../utils/search' import { HighlightEvent } from './highlights' import { addLabelsToLibraryItem, LabelEvent } from './labels' -const columnToDelete = [ +const columnsToDelete = [ 'user', 'uploadFile', 'previewContentType', 'links', 'textContentHash', + 'readableContent', + 'originalContent', + 'feedContent', ] as const -type ColumnToDeleteType = typeof columnToDelete[number] +type ColumnsToDeleteType = typeof columnsToDelete[number] type ItemBaseEvent = Merge< - Omit, ColumnToDeleteType>, + Omit, ColumnsToDeleteType>, { labels?: LabelEvent[] highlights?: HighlightEvent[] @@ -889,17 +892,18 @@ export const updateLibraryItem = async ( } if (libraryItem.state === LibraryItemState.Succeeded) { - const cleanedData = deepDelete(updatedLibraryItem, columnToDelete) + const data = deepDelete(updatedLibraryItem, columnsToDelete) // send create event if the item was created - await pubsub.entityCreated(EntityType.ITEM, cleanedData, userId) + await pubsub.entityCreated(EntityType.ITEM, data, userId) return updatedLibraryItem } + const data = deepDelete(libraryItem, columnsToDelete) await pubsub.entityUpdated( EntityType.ITEM, { - ...libraryItem, + ...data, id, } as ItemEvent, userId @@ -1057,8 +1061,8 @@ export const createOrUpdateLibraryItem = async ( return newLibraryItem } - const cleanedData = deepDelete(newLibraryItem, columnToDelete) - await pubsub.entityCreated(EntityType.ITEM, cleanedData, userId) + const data = deepDelete(newLibraryItem, columnsToDelete) + await pubsub.entityCreated(EntityType.ITEM, data, userId) return newLibraryItem } @@ -1575,7 +1579,7 @@ export const filterItemEvents = ( } } default: - throw new Error(`Unexpected field: ${field.name}`) + throw new RequiresSearchQueryError() } } diff --git a/packages/web/pages/settings/integrations.tsx b/packages/web/pages/settings/integrations.tsx index 33e24c1ff..c994580d2 100644 --- a/packages/web/pages/settings/integrations.tsx +++ b/packages/web/pages/settings/integrations.tsx @@ -279,22 +279,7 @@ export default function Integrations(): JSX.Element { ], }, }, - { - icon: '/static/icons/notion.png', - title: 'Notion', - subText: - 'Notion is an all-in-one workspace. Use our Notion integration to sync your Omnivore items to Notion.', - button: { - text: notion ? 'Settings' : 'Connect', - icon: , - style: notion ? 'ctaWhite' : 'ctaDarkYellow', - action: () => { - notion - ? router.push('/settings/integrations/notion') - : redirectToIntegration('NOTION') - }, - }, - }, + // { // icon: '/static/icons/webhooks.svg', // title: 'Webhooks', @@ -331,11 +316,11 @@ export default function Integrations(): JSX.Element { subText: 'Notion is an all-in-one workspace. Use our Notion integration to sync your Omnivore items to Notion.', button: { - text: isConnected('NOTION') ? 'Settings' : 'Connect', + text: notion ? 'Settings' : 'Connect', icon: , - style: isConnected('NOTION') ? 'ctaWhite' : 'ctaDarkYellow', + style: notion ? 'ctaWhite' : 'ctaDarkYellow', action: () => { - isConnected('NOTION') + notion ? router.push('/settings/integrations/notion') : redirectToIntegration('NOTION') },