more refactor

This commit is contained in:
2025-07-23 09:55:30 -06:00
parent 1885431574
commit aa15b2b335
19 changed files with 48 additions and 54 deletions

View File

@@ -1,22 +0,0 @@
import { promises as fs } from "fs";
import { getGlobalSettings } from "../../../features/local/globalSettings/globalSettingsFileStorageService";
export const directoryOrFileExists = async (
directoryPath: string
): Promise<boolean> => {
try {
await fs.access(directoryPath);
return true;
} catch {
return false;
}
};
export async function getCourseNames() {
console.log("loading course ids");
const globalSettings = await getGlobalSettings();
return globalSettings.courses.map((course) => course.name);
}
export const basePath = process.env.STORAGE_DIRECTORY ?? "./storage";
console.log("base path", basePath);

View File

@@ -1,48 +0,0 @@
import { getWeekNumber } from "@/app/course/[courseName]/calendar/calendarMonthUtils";
import { extractLabelValue } from "@/features/local/assignments/models/utils/markdownUtils";
import { Lecture } from "@/features/local/lectures/lectureModel";
import { getDateFromStringOrThrow } from "@/features/local/utils/timeUtils";
export function parseLecture(fileContent: string): Lecture {
try {
const settings = fileContent.split("---\n")[0];
const name = extractLabelValue(settings, "Name");
const date = extractLabelValue(settings, "Date");
const content = fileContent.split("---\n").slice(1).join("---\n").trim();
return {
name,
date,
content,
};
} catch (error) {
console.error("Error parsing lecture: ", fileContent);
throw error;
}
}
export function lectureToString(lecture: Lecture) {
return `Name: ${lecture.name}
Date: ${lecture.date}
---
${lecture.content}`;
}
export const lectureFolderName = "00 - lectures";
export function getLectureWeekName(semesterStart: string, lectureDate: string) {
const startDate = getDateFromStringOrThrow(
semesterStart,
"semester start date in update lecture"
);
const targetDate = getDateFromStringOrThrow(
lectureDate,
"lecture start date in update lecture"
);
const weekNumber = getWeekNumber(startDate, targetDate)
.toString()
.padStart(2, "0");
const weekName = `week-${weekNumber}`;
return weekName;
}

View File

@@ -0,0 +1,32 @@
import { createTrpcContext } from "./context";
import { createCallerFactory, router } from "./trpcSetup";
import { assignmentRouter } from "../../features/local/assignments/assignmentRouter";
import { canvasFileRouter } from "./canvasFileRouter";
import { directoriesRouter } from "../../features/local/utils/directoriesRouter";
import { globalSettingsRouter } from "../../features/local/globalSettings/globalSettingsRouter";
import { lectureRouter } from "../../features/local/lectures/lectureRouter";
import { pageRouter } from "../../features/local/pages/pageRouter";
import { quizRouter } from "../../features/local/quizzes/quizRouter";
import { settingsRouter } from "../../features/local/course/settingsRouter";
import { moduleRouter } from "@/features/local/modules/moduleRouter";
export const trpcAppRouter = router({
assignment: assignmentRouter,
lectures: lectureRouter,
settings: settingsRouter,
quiz: quizRouter,
page: pageRouter,
module: moduleRouter,
directories: directoriesRouter,
canvasFile: canvasFileRouter,
globalSettings: globalSettingsRouter,
});
export const createCaller = createCallerFactory(trpcAppRouter);
export const createAsyncCaller = async () => {
const context = await createTrpcContext();
return createCaller(context);
};
export type AppRouter = typeof trpcAppRouter;

View File

@@ -1,32 +0,0 @@
import { createTrpcContext } from "../context";
import { createCallerFactory, router } from "../trpcSetup";
import { assignmentRouter } from "../../../features/local/assignments/assignmentRouter";
import { canvasFileRouter } from "./canvasFileRouter";
import { directoriesRouter } from "../../../features/local/utils/directoriesRouter";
import { globalSettingsRouter } from "../../../features/local/globalSettings/globalSettingsRouter";
import { lectureRouter } from "../../../features/local/lectures/lectureRouter";
import { pageRouter } from "../../../features/local/pages/pageRouter";
import { quizRouter } from "../../../features/local/quizzes/quizRouter";
import { settingsRouter } from "../../../features/local/course/settingsRouter";
import { moduleRouter } from "@/features/local/modules/moduleRouter";
export const trpcAppRouter = router({
assignment: assignmentRouter,
lectures: lectureRouter,
settings: settingsRouter,
quiz: quizRouter,
page: pageRouter,
module: moduleRouter,
directories: directoriesRouter,
canvasFile: canvasFileRouter,
globalSettings: globalSettingsRouter,
});
export const createCaller = createCallerFactory(trpcAppRouter);
export const createAsyncCaller = async () => {
const context = await createTrpcContext();
return createCaller(context);
};
export type AppRouter = typeof trpcAppRouter;

View File

@@ -1,6 +1,6 @@
import { createTRPCReact } from "@trpc/react-query";
import { createTRPCContext } from "@trpc/tanstack-react-query";
import { AppRouter } from "./router/appRouter";
import { AppRouter } from "./appRouter";
export const trpc = createTRPCReact<AppRouter>();

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, beforeEach } from "vitest";
import { promises as fs } from "fs";
import { fileStorageService } from "../../features/local/utils/fileStorageService";
import { basePath } from "../fileStorage/utils/fileSystemUtils";
import { basePath } from "../../features/local/utils/fileSystemUtils";
describe("FileStorageTests", () => {
beforeEach(async () => {

View File

@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest";
import { lectureToString } from "../fileStorage/utils/lectureUtils";
import { parseLecture } from "../fileStorage/utils/lectureUtils";
import { lectureToString } from "../../features/local/lectures/lectureUtils";
import { parseLecture } from "../../features/local/lectures/lectureUtils";
import { Lecture } from "@/features/local/lectures/lectureModel";
describe("can parse and stringify lectures", () => {