mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
remove unnecessary fields from item events
This commit is contained in:
parent
208a5895ef
commit
a49366b4cc
5 changed files with 41 additions and 55 deletions
|
|
@ -16,6 +16,7 @@ export interface TriggerRuleJobData {
|
||||||
libraryItemId: string
|
libraryItemId: string
|
||||||
userId: string
|
userId: string
|
||||||
ruleEventType: RuleEventType
|
ruleEventType: RuleEventType
|
||||||
|
data: unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
interface RuleActionObj {
|
interface RuleActionObj {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import { RuleEventType } from './entity/rule'
|
||||||
import { env } from './env'
|
import { env } from './env'
|
||||||
import { ReportType } from './generated/graphql'
|
import { ReportType } from './generated/graphql'
|
||||||
import { FeatureName, findFeatureByName } from './services/features'
|
import { FeatureName, findFeatureByName } from './services/features'
|
||||||
import { Merge } from './util'
|
|
||||||
import {
|
import {
|
||||||
enqueueAISummarizeJob,
|
enqueueAISummarizeJob,
|
||||||
enqueueExportItem,
|
enqueueExportItem,
|
||||||
|
|
@ -19,11 +18,6 @@ const logger = buildLogger('pubsub')
|
||||||
|
|
||||||
const client = new PubSub()
|
const client = new PubSub()
|
||||||
|
|
||||||
type EntityData<T extends Record<string, any>> = Merge<
|
|
||||||
T,
|
|
||||||
{ libraryItemId: string }
|
|
||||||
>
|
|
||||||
|
|
||||||
const isYouTubeVideoURL = (url: string | undefined): boolean => {
|
const isYouTubeVideoURL = (url: string | undefined): boolean => {
|
||||||
if (!url) {
|
if (!url) {
|
||||||
return false
|
return false
|
||||||
|
|
@ -68,16 +62,17 @@ export const createPubSubClient = (): PubsubClient => {
|
||||||
},
|
},
|
||||||
entityCreated: async <T extends Record<string, any>>(
|
entityCreated: async <T extends Record<string, any>>(
|
||||||
type: EntityType,
|
type: EntityType,
|
||||||
data: EntityData<T>,
|
data: T,
|
||||||
userId: string
|
userId: string,
|
||||||
|
libraryItemId: string
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
const libraryItemId = data.libraryItemId
|
|
||||||
// queue trigger rule job
|
// queue trigger rule job
|
||||||
if (type === EntityType.PAGE) {
|
if (type === EntityType.PAGE) {
|
||||||
await enqueueTriggerRuleJob({
|
await enqueueTriggerRuleJob({
|
||||||
userId,
|
userId,
|
||||||
ruleEventType: RuleEventType.PageCreated,
|
ruleEventType: RuleEventType.PageCreated,
|
||||||
libraryItemId,
|
libraryItemId,
|
||||||
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// queue export item job
|
// queue export item job
|
||||||
|
|
@ -112,17 +107,17 @@ export const createPubSubClient = (): PubsubClient => {
|
||||||
},
|
},
|
||||||
entityUpdated: async <T extends Record<string, any>>(
|
entityUpdated: async <T extends Record<string, any>>(
|
||||||
type: EntityType,
|
type: EntityType,
|
||||||
data: EntityData<T>,
|
data: T,
|
||||||
userId: string
|
userId: string,
|
||||||
|
libraryItemId: string
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
const libraryItemId = data.libraryItemId
|
|
||||||
|
|
||||||
// queue trigger rule job
|
// queue trigger rule job
|
||||||
if (type === EntityType.PAGE) {
|
if (type === EntityType.PAGE) {
|
||||||
await enqueueTriggerRuleJob({
|
await enqueueTriggerRuleJob({
|
||||||
userId,
|
userId,
|
||||||
ruleEventType: RuleEventType.PageUpdated,
|
ruleEventType: RuleEventType.PageUpdated,
|
||||||
libraryItemId,
|
libraryItemId,
|
||||||
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// queue export item job
|
// queue export item job
|
||||||
|
|
@ -178,13 +173,15 @@ export interface PubsubClient {
|
||||||
) => Promise<void>
|
) => Promise<void>
|
||||||
entityCreated: <T extends Record<string, any>>(
|
entityCreated: <T extends Record<string, any>>(
|
||||||
type: EntityType,
|
type: EntityType,
|
||||||
data: EntityData<T>,
|
data: T,
|
||||||
userId: string
|
userId: string,
|
||||||
|
libraryItemId: string
|
||||||
) => Promise<void>
|
) => Promise<void>
|
||||||
entityUpdated: <T extends Record<string, any>>(
|
entityUpdated: <T extends Record<string, any>>(
|
||||||
type: EntityType,
|
type: EntityType,
|
||||||
data: EntityData<T>,
|
data: T,
|
||||||
userId: string
|
userId: string,
|
||||||
|
libraryItemId: string
|
||||||
) => Promise<void>
|
) => Promise<void>
|
||||||
entityDeleted: (type: EntityType, id: string, userId: string) => Promise<void>
|
entityDeleted: (type: EntityType, id: string, userId: string) => Promise<void>
|
||||||
reportSubmitted(
|
reportSubmitted(
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,8 @@ export const createHighlight = async (
|
||||||
await pubsub.entityCreated<CreateHighlightEvent>(
|
await pubsub.entityCreated<CreateHighlightEvent>(
|
||||||
EntityType.HIGHLIGHT,
|
EntityType.HIGHLIGHT,
|
||||||
{ ...newHighlight, pageId: libraryItemId },
|
{ ...newHighlight, pageId: libraryItemId },
|
||||||
userId
|
userId,
|
||||||
|
libraryItemId
|
||||||
)
|
)
|
||||||
|
|
||||||
await enqueueUpdateHighlight({
|
await enqueueUpdateHighlight({
|
||||||
|
|
@ -106,7 +107,8 @@ export const mergeHighlights = async (
|
||||||
await pubsub.entityCreated<CreateHighlightEvent>(
|
await pubsub.entityCreated<CreateHighlightEvent>(
|
||||||
EntityType.HIGHLIGHT,
|
EntityType.HIGHLIGHT,
|
||||||
{ ...newHighlight, pageId: libraryItemId },
|
{ ...newHighlight, pageId: libraryItemId },
|
||||||
userId
|
userId,
|
||||||
|
libraryItemId
|
||||||
)
|
)
|
||||||
|
|
||||||
await enqueueUpdateHighlight({
|
await enqueueUpdateHighlight({
|
||||||
|
|
@ -139,8 +141,9 @@ export const updateHighlight = async (
|
||||||
const libraryItemId = updatedHighlight.libraryItem.id
|
const libraryItemId = updatedHighlight.libraryItem.id
|
||||||
await pubsub.entityUpdated<UpdateHighlightEvent>(
|
await pubsub.entityUpdated<UpdateHighlightEvent>(
|
||||||
EntityType.HIGHLIGHT,
|
EntityType.HIGHLIGHT,
|
||||||
{ ...highlight, id: highlightId, pageId: libraryItemId, libraryItemId },
|
{ ...highlight, id: highlightId, pageId: libraryItemId },
|
||||||
userId
|
userId,
|
||||||
|
libraryItemId
|
||||||
)
|
)
|
||||||
|
|
||||||
await enqueueUpdateHighlight({
|
await enqueueUpdateHighlight({
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,11 @@ import { findHighlightById } from './highlights'
|
||||||
import { findLibraryItemIdsByLabelId } from './library_item'
|
import { findLibraryItemIdsByLabelId } from './library_item'
|
||||||
|
|
||||||
type AddLabelsToLibraryItemEvent = {
|
type AddLabelsToLibraryItemEvent = {
|
||||||
libraryItemId: string
|
|
||||||
pageId: string
|
pageId: string
|
||||||
labels: DeepPartial<Label>[]
|
labels: DeepPartial<Label>[]
|
||||||
source?: LabelSource
|
source?: LabelSource
|
||||||
}
|
}
|
||||||
type AddLabelsToHighlightEvent = {
|
type AddLabelsToHighlightEvent = {
|
||||||
libraryItemId: string
|
|
||||||
highlightId: string
|
highlightId: string
|
||||||
labels: DeepPartial<Label>[]
|
labels: DeepPartial<Label>[]
|
||||||
}
|
}
|
||||||
|
|
@ -148,8 +146,9 @@ export const saveLabelsInLibraryItem = async (
|
||||||
// create pubsub event
|
// create pubsub event
|
||||||
await pubsub.entityCreated<AddLabelsToLibraryItemEvent>(
|
await pubsub.entityCreated<AddLabelsToLibraryItemEvent>(
|
||||||
EntityType.LABEL,
|
EntityType.LABEL,
|
||||||
{ pageId: libraryItemId, labels, source, libraryItemId },
|
{ pageId: libraryItemId, labels, source },
|
||||||
userId
|
userId,
|
||||||
|
libraryItemId
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,8 +217,9 @@ export const saveLabelsInHighlight = async (
|
||||||
// create pubsub event
|
// create pubsub event
|
||||||
await pubsub.entityCreated<AddLabelsToHighlightEvent>(
|
await pubsub.entityCreated<AddLabelsToHighlightEvent>(
|
||||||
EntityType.LABEL,
|
EntityType.LABEL,
|
||||||
{ highlightId, labels, libraryItemId },
|
{ highlightId, labels },
|
||||||
userId
|
userId,
|
||||||
|
libraryItemId
|
||||||
)
|
)
|
||||||
|
|
||||||
// update labels in library item
|
// update labels in library item
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ import { logger } from '../utils/logger'
|
||||||
import { parseSearchQuery } from '../utils/search'
|
import { parseSearchQuery } from '../utils/search'
|
||||||
import { addLabelsToLibraryItem } from './labels'
|
import { addLabelsToLibraryItem } from './labels'
|
||||||
|
|
||||||
type ItemEvent = { libraryItemId: string; userId: string }
|
|
||||||
type IgnoredFields =
|
type IgnoredFields =
|
||||||
| 'user'
|
| 'user'
|
||||||
| 'uploadFile'
|
| 'uploadFile'
|
||||||
|
|
@ -39,14 +38,10 @@ type IgnoredFields =
|
||||||
| 'links'
|
| 'links'
|
||||||
| 'recommenderNames'
|
| 'recommenderNames'
|
||||||
| 'textContentHash'
|
| 'textContentHash'
|
||||||
|
export type CreateItemEvent = Omit<DeepPartial<LibraryItem>, IgnoredFields>
|
||||||
type CreateItemEvent = Merge<
|
export type UpdateItemEvent = Omit<
|
||||||
Omit<DeepPartial<LibraryItem>, IgnoredFields>,
|
QueryDeepPartialEntity<LibraryItem>,
|
||||||
ItemEvent
|
IgnoredFields
|
||||||
>
|
|
||||||
type UpdateItemEvent = Merge<
|
|
||||||
Omit<QueryDeepPartialEntity<LibraryItem>, IgnoredFields>,
|
|
||||||
ItemEvent
|
|
||||||
>
|
>
|
||||||
|
|
||||||
enum ReadFilter {
|
enum ReadFilter {
|
||||||
|
|
@ -861,12 +856,9 @@ export const updateLibraryItem = async (
|
||||||
// send create event if the item was created
|
// send create event if the item was created
|
||||||
await pubsub.entityCreated<CreateItemEvent>(
|
await pubsub.entityCreated<CreateItemEvent>(
|
||||||
EntityType.PAGE,
|
EntityType.PAGE,
|
||||||
{
|
updatedLibraryItem,
|
||||||
...updatedLibraryItem,
|
userId,
|
||||||
libraryItemId: id,
|
id
|
||||||
userId,
|
|
||||||
},
|
|
||||||
userId
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return updatedLibraryItem
|
return updatedLibraryItem
|
||||||
|
|
@ -874,13 +866,9 @@ export const updateLibraryItem = async (
|
||||||
|
|
||||||
await pubsub.entityUpdated<UpdateItemEvent>(
|
await pubsub.entityUpdated<UpdateItemEvent>(
|
||||||
EntityType.PAGE,
|
EntityType.PAGE,
|
||||||
{
|
libraryItem,
|
||||||
...libraryItem,
|
userId,
|
||||||
id,
|
id
|
||||||
libraryItemId: id,
|
|
||||||
userId,
|
|
||||||
},
|
|
||||||
userId
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return updatedLibraryItem
|
return updatedLibraryItem
|
||||||
|
|
@ -1034,12 +1022,9 @@ export const createOrUpdateLibraryItem = async (
|
||||||
|
|
||||||
await pubsub.entityCreated<CreateItemEvent>(
|
await pubsub.entityCreated<CreateItemEvent>(
|
||||||
EntityType.PAGE,
|
EntityType.PAGE,
|
||||||
{
|
newLibraryItem,
|
||||||
...newLibraryItem,
|
userId,
|
||||||
libraryItemId: newLibraryItem.id,
|
newLibraryItem.id
|
||||||
userId,
|
|
||||||
},
|
|
||||||
userId
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return newLibraryItem
|
return newLibraryItem
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue