import { DebugBuilder } from "../../modules/debugger.mjs"; const log = new DebugBuilder("server", "mongoDiscordIDWrappers"); import { insertDocument, getDocuments, connectToDatabase, } from "./mongoHandler.mjs"; const collectionName = "discord-ids"; // Wrapper for inserting a Discord ID export const createDiscordID = async (discordID) => { try { const insertedId = await insertDocument(collectionName, discordID); return insertedId; } catch (error) { log.ERROR("Error creating Discord ID:", error); throw error; } }; // Wrapper for retrieving all Discord IDs export const getAllDiscordIDs = async () => { try { const discordIDs = await getDocuments(collectionName); return discordIDs; } catch (error) { log.ERROR("Error getting all Discord IDs:", error); throw error; } }; // Wrapper for retrieving a Discord ID by name or discord_id export const getDiscordID = async (identifier) => { const db = await connectToDatabase(); try { const collection = db.db().collection(collectionName); const discordID = await collection.findOne({ $or: [{ name: identifier }, { discord_id: identifier }], }); return discordID; } catch (error) { log.ERROR("Error getting Discord ID:", error); throw error; } finally { // Close the connection await db.close(); } }; // Wrapper for updating a Discord ID by name or discord_id export const updateDiscordID = async (identifier, updatedFields) => { const db = await connectToDatabase(); try { const collection = db.db().collection(collectionName); const result = await collection.updateOne( { $or: [{ name: identifier }, { discord_id: identifier }], }, { $set: updatedFields }, ); log.INFO("Discord ID updated:", result.modifiedCount); return result.modifiedCount; } catch (error) { log.ERROR("Error updating Discord ID:", error); throw error; } finally { // Close the connection await db.close(); } }; // Wrapper for deleting a Discord ID by name or discord_id export const deleteDiscordID = async (identifier) => { const db = await connectToDatabase(); try { const collection = db.db().collection(collectionName); const result = await collection.deleteOne({ $or: [{ name: identifier }, { discord_id: identifier }], }); log.INFO("Discord ID deleted:", result.deletedCount); return result.deletedCount; } catch (error) { log.ERROR("Error deleting Discord ID:", error); throw error; } finally { // Close the connection await db.close(); } };