From dfb2765f3941a9ff8d617684d25d1c14ce9ef49c Mon Sep 17 00:00:00 2001 From: Logan Cusano Date: Sat, 21 Sep 2024 11:36:02 -0400 Subject: [PATCH] Add a new key for feeds to set active status --- .../mongo-wrappers/mongoFeedsWrappers.mjs | 16 ++++++++++++++++ src/rss-manager/feedHandler.mjs | 4 ++++ src/rss-manager/sourceManager.mjs | 5 +++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/modules/mongo-wrappers/mongoFeedsWrappers.mjs b/src/modules/mongo-wrappers/mongoFeedsWrappers.mjs index fae46b2..d4af520 100644 --- a/src/modules/mongo-wrappers/mongoFeedsWrappers.mjs +++ b/src/modules/mongo-wrappers/mongoFeedsWrappers.mjs @@ -71,6 +71,22 @@ export const updateFeedByLink = async (link, updatedFields) => { } }; +// Wrapper for deactivating a feed by link +export const deactivateFeedByLink = async (link) => { + try { + const updatedCount = await updateDocumentByField( + feedCollectionName, + "link", + link, + [{'active':false}] + ); + return updatedCount; + } catch (error) { + log.ERROR("Error deleting feed by link:", error); + throw error; + } +}; + // Wrapper for deleting a feed by link export const deleteFeedByLink = async (link) => { try { diff --git a/src/rss-manager/feedHandler.mjs b/src/rss-manager/feedHandler.mjs index 61e0b34..1a18ceb 100644 --- a/src/rss-manager/feedHandler.mjs +++ b/src/rss-manager/feedHandler.mjs @@ -51,6 +51,10 @@ export const updateFeeds = async (client) => { const sourcePromiseArray = records.map(async (source) => { log.DEBUG("Processing source:", source.title); + // Check if the feed is active + if (!source.active) { + return + } try { const parsedFeed = await parser.parseURL(source.link); diff --git a/src/rss-manager/sourceManager.mjs b/src/rss-manager/sourceManager.mjs index 509253a..8208026 100644 --- a/src/rss-manager/sourceManager.mjs +++ b/src/rss-manager/sourceManager.mjs @@ -3,7 +3,7 @@ const log = new DebugBuilder("server", "sourceManager"); import { createFeed, getFeedByLink, - deleteFeedByLink, + deactivateFeedByLink, } from "../modules/mongo-wrappers/mongoFeedsWrappers.mjs"; class SourceManager { @@ -48,7 +48,7 @@ class SourceManager { return; } - const results = await deleteFeedByLink(sourceURL); + const results = await deactivateFeedByLink(sourceURL); if (!results) { log.WARN(`Failed to remove source: ${sourceURL}`); return; @@ -70,6 +70,7 @@ class SourceManager { category, guild_id: guildId, channel_id: channelId, + active: true }; const record = await createFeed(feed); log.DEBUG("Source added:", record);