remove unnecessary fields from item events
This commit is contained in:
@ -16,6 +16,7 @@ export interface TriggerRuleJobData {
|
||||
libraryItemId: string
|
||||
userId: string
|
||||
ruleEventType: RuleEventType
|
||||
data: unknown
|
||||
}
|
||||
|
||||
interface RuleActionObj {
|
||||
|
||||
@ -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<T extends Record<string, any>> = Merge<
|
||||
T,
|
||||
{ libraryItemId: string }
|
||||
>
|
||||
|
||||
const isYouTubeVideoURL = (url: string | undefined): boolean => {
|
||||
if (!url) {
|
||||
return false
|
||||
@ -68,16 +62,17 @@ export const createPubSubClient = (): PubsubClient => {
|
||||
},
|
||||
entityCreated: async <T extends Record<string, any>>(
|
||||
type: EntityType,
|
||||
data: EntityData<T>,
|
||||
userId: string
|
||||
data: T,
|
||||
userId: string,
|
||||
libraryItemId: string
|
||||
): Promise<void> => {
|
||||
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 <T extends Record<string, any>>(
|
||||
type: EntityType,
|
||||
data: EntityData<T>,
|
||||
userId: string
|
||||
data: T,
|
||||
userId: string,
|
||||
libraryItemId: string
|
||||
): Promise<void> => {
|
||||
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<void>
|
||||
entityCreated: <T extends Record<string, any>>(
|
||||
type: EntityType,
|
||||
data: EntityData<T>,
|
||||
userId: string
|
||||
data: T,
|
||||
userId: string,
|
||||
libraryItemId: string
|
||||
) => Promise<void>
|
||||
entityUpdated: <T extends Record<string, any>>(
|
||||
type: EntityType,
|
||||
data: EntityData<T>,
|
||||
userId: string
|
||||
data: T,
|
||||
userId: string,
|
||||
libraryItemId: string
|
||||
) => Promise<void>
|
||||
entityDeleted: (type: EntityType, id: string, userId: string) => Promise<void>
|
||||
reportSubmitted(
|
||||
|
||||
@ -59,7 +59,8 @@ export const createHighlight = async (
|
||||
await pubsub.entityCreated<CreateHighlightEvent>(
|
||||
EntityType.HIGHLIGHT,
|
||||
{ ...newHighlight, pageId: libraryItemId },
|
||||
userId
|
||||
userId,
|
||||
libraryItemId
|
||||
)
|
||||
|
||||
await enqueueUpdateHighlight({
|
||||
@ -106,7 +107,8 @@ export const mergeHighlights = async (
|
||||
await pubsub.entityCreated<CreateHighlightEvent>(
|
||||
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<UpdateHighlightEvent>(
|
||||
EntityType.HIGHLIGHT,
|
||||
{ ...highlight, id: highlightId, pageId: libraryItemId, libraryItemId },
|
||||
userId
|
||||
{ ...highlight, id: highlightId, pageId: libraryItemId },
|
||||
userId,
|
||||
libraryItemId
|
||||
)
|
||||
|
||||
await enqueueUpdateHighlight({
|
||||
|
||||
@ -11,13 +11,11 @@ import { findHighlightById } from './highlights'
|
||||
import { findLibraryItemIdsByLabelId } from './library_item'
|
||||
|
||||
type AddLabelsToLibraryItemEvent = {
|
||||
libraryItemId: string
|
||||
pageId: string
|
||||
labels: DeepPartial<Label>[]
|
||||
source?: LabelSource
|
||||
}
|
||||
type AddLabelsToHighlightEvent = {
|
||||
libraryItemId: string
|
||||
highlightId: string
|
||||
labels: DeepPartial<Label>[]
|
||||
}
|
||||
@ -148,8 +146,9 @@ export const saveLabelsInLibraryItem = async (
|
||||
// create pubsub event
|
||||
await pubsub.entityCreated<AddLabelsToLibraryItemEvent>(
|
||||
EntityType.LABEL,
|
||||
{ pageId: libraryItemId, labels, source, libraryItemId },
|
||||
userId
|
||||
{ pageId: libraryItemId, labels, source },
|
||||
userId,
|
||||
libraryItemId
|
||||
)
|
||||
}
|
||||
|
||||
@ -218,8 +217,9 @@ export const saveLabelsInHighlight = async (
|
||||
// create pubsub event
|
||||
await pubsub.entityCreated<AddLabelsToHighlightEvent>(
|
||||
EntityType.LABEL,
|
||||
{ highlightId, labels, libraryItemId },
|
||||
userId
|
||||
{ highlightId, labels },
|
||||
userId,
|
||||
libraryItemId
|
||||
)
|
||||
|
||||
// update labels in library item
|
||||
|
||||
@ -29,7 +29,6 @@ import { logger } from '../utils/logger'
|
||||
import { parseSearchQuery } from '../utils/search'
|
||||
import { addLabelsToLibraryItem } from './labels'
|
||||
|
||||
type ItemEvent = { libraryItemId: string; userId: string }
|
||||
type IgnoredFields =
|
||||
| 'user'
|
||||
| 'uploadFile'
|
||||
@ -39,14 +38,10 @@ type IgnoredFields =
|
||||
| 'links'
|
||||
| 'recommenderNames'
|
||||
| 'textContentHash'
|
||||
|
||||
type CreateItemEvent = Merge<
|
||||
Omit<DeepPartial<LibraryItem>, IgnoredFields>,
|
||||
ItemEvent
|
||||
>
|
||||
type UpdateItemEvent = Merge<
|
||||
Omit<QueryDeepPartialEntity<LibraryItem>, IgnoredFields>,
|
||||
ItemEvent
|
||||
export type CreateItemEvent = Omit<DeepPartial<LibraryItem>, IgnoredFields>
|
||||
export type UpdateItemEvent = Omit<
|
||||
QueryDeepPartialEntity<LibraryItem>,
|
||||
IgnoredFields
|
||||
>
|
||||
|
||||
enum ReadFilter {
|
||||
@ -861,12 +856,9 @@ export const updateLibraryItem = async (
|
||||
// send create event if the item was created
|
||||
await pubsub.entityCreated<CreateItemEvent>(
|
||||
EntityType.PAGE,
|
||||
{
|
||||
...updatedLibraryItem,
|
||||
libraryItemId: id,
|
||||
userId,
|
||||
},
|
||||
userId
|
||||
updatedLibraryItem,
|
||||
userId,
|
||||
id
|
||||
)
|
||||
|
||||
return updatedLibraryItem
|
||||
@ -874,13 +866,9 @@ export const updateLibraryItem = async (
|
||||
|
||||
await pubsub.entityUpdated<UpdateItemEvent>(
|
||||
EntityType.PAGE,
|
||||
{
|
||||
...libraryItem,
|
||||
id,
|
||||
libraryItemId: id,
|
||||
userId,
|
||||
},
|
||||
userId
|
||||
libraryItem,
|
||||
userId,
|
||||
id
|
||||
)
|
||||
|
||||
return updatedLibraryItem
|
||||
@ -1034,12 +1022,9 @@ export const createOrUpdateLibraryItem = async (
|
||||
|
||||
await pubsub.entityCreated<CreateItemEvent>(
|
||||
EntityType.PAGE,
|
||||
{
|
||||
...newLibraryItem,
|
||||
libraryItemId: newLibraryItem.id,
|
||||
userId,
|
||||
},
|
||||
userId
|
||||
newLibraryItem,
|
||||
userId,
|
||||
newLibraryItem.id
|
||||
)
|
||||
|
||||
return newLibraryItem
|
||||
|
||||
Reference in New Issue
Block a user