From 72487019b3f255cece40a8073bbad8bc9968a3b7 Mon Sep 17 00:00:00 2001 From: "Alex Pooley (@zuedev)" Date: Wed, 22 Jul 2026 15:32:57 +0100 Subject: major code refactor, add uex lookup --- 174bg/discord-bot/source/controllers/pocketbase.js | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 174bg/discord-bot/source/controllers/pocketbase.js (limited to '174bg/discord-bot/source/controllers/pocketbase.js') diff --git a/174bg/discord-bot/source/controllers/pocketbase.js b/174bg/discord-bot/source/controllers/pocketbase.js new file mode 100644 index 0000000..4046391 --- /dev/null +++ b/174bg/discord-bot/source/controllers/pocketbase.js @@ -0,0 +1,40 @@ +/** + * Controller module for interacting with the PocketBase API. + */ + +import PocketBase from "pocketbase"; + +const { POCKETBASE_URL, POCKETBASE_SUPERUSER_EMAIL, POCKETBASE_SUPERUSER_PASSWORD } = process.env; + +/** + * Logs in to the PocketBase API using the superuser credentials. + * @returns {Promise} A Promise that resolves to the authenticated PocketBase instance. + */ +export async function login() { + const pb = new PocketBase(POCKETBASE_URL); + await pb.collection("_superusers").authWithPassword(POCKETBASE_SUPERUSER_EMAIL, POCKETBASE_SUPERUSER_PASSWORD); + return pb; +} + +/** + * Logs out of the PocketBase API by clearing the authentication store. + * @param {PocketBase} pb - The PocketBase instance to log out from. + * @returns {Promise} A Promise that resolves when the logout is complete. + */ +export async function logout(pb) { + await pb.authStore.clear(); +} + +/** + * Retrieves the full list of records from a specified collection in the PocketBase API. + * @param {string} collectionName - The name of the collection to retrieve records from. + * @returns {Promise} A Promise that resolves to an array of records from the specified collection. + */ +export async function getFullList(collectionName) { + const pb = await login(); + const data = await pb.collection(collectionName).getFullList(); + await logout(pb); + return data; +} + +export default { login, logout, getFullList } \ No newline at end of file -- cgit v1.2.3