From a0d12d46617f042a9f4ba330e24c90ff90e8bb33 Mon Sep 17 00:00:00 2001 From: themodrnhakr Date: Sat, 27 Sep 2025 11:01:38 -0500 Subject: [PATCH] Add task service. Database interactions will be handled by service classes. Service classes will be called by page load functions as well as by API endpoints. This will allow one source of truth for authorization and data validation. --- src/lib/server/services/tasks.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/lib/server/services/tasks.ts diff --git a/src/lib/server/services/tasks.ts b/src/lib/server/services/tasks.ts new file mode 100644 index 0000000..518b3dd --- /dev/null +++ b/src/lib/server/services/tasks.ts @@ -0,0 +1,25 @@ +import { type DB, db } from "$lib/server/db/db"; +import logger from "../logger"; +class TasksService { + private db: DB; + private caller: "internal" | "api"; + + constructor(caller: "internal" | "api", dbClient: DB = db) { + this.db = dbClient; + this.caller = caller; + } + + public async getAll() { + logger.info("Fetching all task records..."); + try { + const result = await this.db.query.tasks.findMany(); + logger.debug(`Found ${result.length} records.`); + return result; + } catch (e) { + logger.error({ msg: "Error querying the database.", error: e }); + return false; + } + } +} + +export default TasksService;