diff --git a/packages/api/src/jobs/trigger_rule.ts b/packages/api/src/jobs/trigger_rule.ts index 3247e3fa9..a75fb75f5 100644 --- a/packages/api/src/jobs/trigger_rule.ts +++ b/packages/api/src/jobs/trigger_rule.ts @@ -16,6 +16,7 @@ export interface TriggerRuleJobData { libraryItemId: string userId: string ruleEventType: RuleEventType + data: unknown } interface RuleActionObj { diff --git a/packages/api/src/pubsub.ts b/packages/api/src/pubsub.ts index 53f95878a..b210fbfa5 100644 --- a/packages/api/src/pubsub.ts +++ b/packages/api/src/pubsub.ts @@ -4,7 +4,6 @@ import { RuleEventType } from './entity/rule' import { env } from './env' import { ReportType } from './generated/graphql' import { FeatureName, findFeatureByName } from './services/features' -import { Merge } from './util' import { enqueueAISummarizeJob, enqueueExportItem, @@ -19,11 +18,6 @@ const logger = buildLogger('pubsub') const client = new PubSub() -type EntityData> = Merge< - T, - { libraryItemId: string } -> - const isYouTubeVideoURL = (url: string | undefined): boolean => { if (!url) { return false @@ -68,16 +62,17 @@ export const createPubSubClient = (): PubsubClient => { }, entityCreated: async >( type: EntityType, - data: EntityData, - userId: string + data: T, + userId: string, + libraryItemId: string ): Promise => { - const libraryItemId = data.libraryItemId // queue trigger rule job if (type === EntityType.PAGE) { await enqueueTriggerRuleJob({ userId, ruleEventType: RuleEventType.PageCreated, libraryItemId, + data, }) } // queue export item job @@ -112,17 +107,17 @@ export const createPubSubClient = (): PubsubClient => { }, entityUpdated: async >( type: EntityType, - data: EntityData, - userId: string + data: T, + userId: string, + libraryItemId: string ): Promise => { - const libraryItemId = data.libraryItemId - // queue trigger rule job if (type === EntityType.PAGE) { await enqueueTriggerRuleJob({ userId, ruleEventType: RuleEventType.PageUpdated, libraryItemId, + data, }) } // queue export item job @@ -178,13 +173,15 @@ export interface PubsubClient { ) => Promise entityCreated: >( type: EntityType, - data: EntityData, - userId: string + data: T, + userId: string, + libraryItemId: string ) => Promise entityUpdated: >( type: EntityType, - data: EntityData, - userId: string + data: T, + userId: string, + libraryItemId: string ) => Promise entityDeleted: (type: EntityType, id: string, userId: string) => Promise reportSubmitted( diff --git a/packages/api/src/services/highlights.ts b/packages/api/src/services/highlights.ts index 5883fb7cb..babf4d4a4 100644 --- a/packages/api/src/services/highlights.ts +++ b/packages/api/src/services/highlights.ts @@ -59,7 +59,8 @@ export const createHighlight = async ( await pubsub.entityCreated( EntityType.HIGHLIGHT, { ...newHighlight, pageId: libraryItemId }, - userId + userId, + libraryItemId ) await enqueueUpdateHighlight({ @@ -106,7 +107,8 @@ export const mergeHighlights = async ( await pubsub.entityCreated( EntityType.HIGHLIGHT, { ...newHighlight, pageId: libraryItemId }, - userId + userId, + libraryItemId ) await enqueueUpdateHighlight({ @@ -139,8 +141,9 @@ export const updateHighlight = async ( const libraryItemId = updatedHighlight.libraryItem.id await pubsub.entityUpdated( EntityType.HIGHLIGHT, - { ...highlight, id: highlightId, pageId: libraryItemId, libraryItemId }, - userId + { ...highlight, id: highlightId, pageId: libraryItemId }, + userId, + libraryItemId ) await enqueueUpdateHighlight({ diff --git a/packages/api/src/services/labels.ts b/packages/api/src/services/labels.ts index 285338745..f4bae13b7 100644 --- a/packages/api/src/services/labels.ts +++ b/packages/api/src/services/labels.ts @@ -11,13 +11,11 @@ import { findHighlightById } from './highlights' import { findLibraryItemIdsByLabelId } from './library_item' type AddLabelsToLibraryItemEvent = { - libraryItemId: string pageId: string labels: DeepPartial