From 90c049506d83a41c45f3928811b3846741846b63 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 23 Feb 2024 14:41:46 +0800 Subject: [PATCH] Add a rule to delete items --- packages/api/src/entity/rule.ts | 1 + packages/api/src/generated/graphql.ts | 1 + packages/api/src/generated/schema.graphql | 1 + packages/api/src/jobs/trigger_rule.ts | 7 +++++++ packages/api/src/schema.ts | 1 + packages/web/lib/networking/queries/useGetRulesQuery.tsx | 1 + 6 files changed, 12 insertions(+) diff --git a/packages/api/src/entity/rule.ts b/packages/api/src/entity/rule.ts index 04d53ab33..0147cbd19 100644 --- a/packages/api/src/entity/rule.ts +++ b/packages/api/src/entity/rule.ts @@ -12,6 +12,7 @@ import { User } from './user' export enum RuleActionType { AddLabel = 'ADD_LABEL', Archive = 'ARCHIVE', + Delete = 'DELETE', MarkAsRead = 'MARK_AS_READ', SendNotification = 'SEND_NOTIFICATION', } diff --git a/packages/api/src/generated/graphql.ts b/packages/api/src/generated/graphql.ts index 9d908a941..ad444a1ac 100644 --- a/packages/api/src/generated/graphql.ts +++ b/packages/api/src/generated/graphql.ts @@ -2215,6 +2215,7 @@ export type RuleActionInput = { export enum RuleActionType { AddLabel = 'ADD_LABEL', Archive = 'ARCHIVE', + Delete = 'DELETE', MarkAsRead = 'MARK_AS_READ', SendNotification = 'SEND_NOTIFICATION' } diff --git a/packages/api/src/generated/schema.graphql b/packages/api/src/generated/schema.graphql index 2df4f681e..f1a5dad5f 100644 --- a/packages/api/src/generated/schema.graphql +++ b/packages/api/src/generated/schema.graphql @@ -1655,6 +1655,7 @@ input RuleActionInput { enum RuleActionType { ADD_LABEL ARCHIVE + DELETE MARK_AS_READ SEND_NOTIFICATION } diff --git a/packages/api/src/jobs/trigger_rule.ts b/packages/api/src/jobs/trigger_rule.ts index efd3063fd..bc7b4a064 100644 --- a/packages/api/src/jobs/trigger_rule.ts +++ b/packages/api/src/jobs/trigger_rule.ts @@ -5,6 +5,7 @@ import { addLabelsToLibraryItem } from '../services/labels' import { SearchArgs, searchLibraryItems, + softDeleteLibraryItem, updateLibraryItem, } from '../services/library_item' import { findEnabledRules } from '../services/rules' @@ -38,6 +39,10 @@ const addLabels = async (obj: RuleActionObj) => { ) } +const deleteLibraryItem = async (obj: RuleActionObj) => { + return softDeleteLibraryItem(obj.libraryItem.id, obj.userId) +} + const archivePage = async (obj: RuleActionObj) => { return updateLibraryItem( obj.libraryItem.id, @@ -76,6 +81,8 @@ const getRuleAction = (actionType: RuleActionType): RuleActionFunc => { return addLabels case RuleActionType.Archive: return archivePage + case RuleActionType.Delete: + return deleteLibraryItem case RuleActionType.MarkAsRead: return markPageAsRead case RuleActionType.SendNotification: diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index d18b91012..5cdfeeffb 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -2135,6 +2135,7 @@ const schema = gql` enum RuleActionType { ADD_LABEL ARCHIVE + DELETE MARK_AS_READ SEND_NOTIFICATION } diff --git a/packages/web/lib/networking/queries/useGetRulesQuery.tsx b/packages/web/lib/networking/queries/useGetRulesQuery.tsx index 3738e7461..f7619cdcf 100644 --- a/packages/web/lib/networking/queries/useGetRulesQuery.tsx +++ b/packages/web/lib/networking/queries/useGetRulesQuery.tsx @@ -11,6 +11,7 @@ export enum RuleActionType { AddLabel = 'ADD_LABEL', Archive = 'ARCHIVE', MarkAsRead = 'MARK_AS_READ', + Delete = 'DELETE', SendNotification = 'SEND_NOTIFICATION', }