Files
drb-server/src/modules/mongo-wrappers/mongoFeedsWrappers.mjs
Logan Cusano 066404dd10
Some checks failed
Update Wiki from JSDoc / update-wiki (pull_request) Has been cancelled
Lint JavaScript/Node.js / lint-js (pull_request) Failing after 11s
DRB Tests / drb_mocha_tests (pull_request) Has been cancelled
Updated dir structure to put the actual source code in the general /src dir
2024-08-17 18:44:18 -04:00

125 lines
3.0 KiB
JavaScript

import { DebugBuilder } from "../../modules/debugger.mjs";
const log = new DebugBuilder("server", "mongoFeedsWrappers");
import {
insertDocument,
getDocuments,
getDocumentByField,
updateDocumentByField,
deleteDocumentByField,
} from "./mongoHandler.mjs";
const feedCollectionName = "feeds";
const postCollectionName = "posts";
// Wrapper for inserting a feed
export const createFeed = async (feed) => {
try {
const insertedId = await insertDocument(feedCollectionName, feed);
return insertedId;
} catch (error) {
log.ERROR("Error creating feed:", error);
throw error;
}
};
// Wrapper for retrieving all feeds
export const getAllFeeds = async () => {
try {
const feeds = await getDocuments(feedCollectionName);
return feeds;
} catch (error) {
log.ERROR("Error getting all feeds:", error);
throw error;
}
};
// Wrapper for retrieving a feed by link
export const getFeedByLink = async (link) => {
try {
const feed = await getDocumentByField(feedCollectionName, "link", link);
return feed;
} catch (error) {
log.ERROR("Error getting feed by link:", error);
throw error;
}
};
// Wrapper for retrieving a feed by the title
export const getFeedByTitle = async (title) => {
try {
const feed = await getDocumentByField(feedCollectionName, "title", title);
return feed;
} catch (error) {
log.ERROR("Error getting feed by link:", error);
throw error;
}
};
// Wrapper for updating a feed by link
export const updateFeedByLink = async (link, updatedFields) => {
try {
const modifiedCount = await updateDocumentByField(
feedCollectionName,
"link",
link,
updatedFields,
);
return modifiedCount;
} catch (error) {
log.ERROR("Error updating feed by link:", error);
throw error;
}
};
// Wrapper for deleting a feed by link
export const deleteFeedByLink = async (link) => {
try {
const deletedCount = await deleteDocumentByField(
feedCollectionName,
"link",
link,
);
return deletedCount;
} catch (error) {
log.ERROR("Error deleting feed by link:", error);
throw error;
}
};
// Wrapper for deleting a feed by title
export const deleteFeedByTitle = async (title) => {
try {
const deletedCount = await deleteDocumentByField(
feedCollectionName,
"title",
title,
);
return deletedCount;
} catch (error) {
log.ERROR("Error deleting feed by link:", error);
throw error;
}
};
// Wrapper for inserting a post
export const createPost = async (post) => {
try {
const insertedId = await insertDocument(postCollectionName, post);
return insertedId;
} catch (error) {
log.ERROR("Error creating post:", error);
throw error;
}
};
// Wrapper for retrieving a post by postId
export const getPostByPostId = async (postId) => {
try {
const post = await getDocumentByField(postCollectionName, "postId", postId);
return post;
} catch (error) {
log.ERROR("Error getting post by postId:", error);
throw error;
}
};