mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
more refactor
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { createTrpcContext } from "@/services/serverFunctions/context";
|
import { createTrpcContext } from "@/services/serverFunctions/context";
|
||||||
import { trpcAppRouter } from "@/services/serverFunctions/router/appRouter";
|
import { trpcAppRouter } from "@/services/serverFunctions/appRouter";
|
||||||
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
|
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
|
||||||
|
|
||||||
const handler = async (request: Request) => {
|
const handler = async (request: Request) => {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
import {
|
import {
|
||||||
lectureToString,
|
lectureToString,
|
||||||
parseLecture,
|
parseLecture,
|
||||||
} from "@/services/fileStorage/utils/lectureUtils";
|
} from "@/features/local/lectures/lectureUtils";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import LecturePreview from "./LecturePreview";
|
import LecturePreview from "./LecturePreview";
|
||||||
import EditLectureTitle from "./EditLectureTitle";
|
import EditLectureTitle from "./EditLectureTitle";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks";
|
import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks";
|
||||||
import { getDateFromString } from "@/features/local/utils/timeUtils";
|
import { getDateFromString } from "@/features/local/utils/timeUtils";
|
||||||
import { getLectureWeekName } from "@/services/fileStorage/utils/lectureUtils";
|
import { getLectureWeekName } from "@/features/local/lectures/lectureUtils";
|
||||||
import { getCourseUrl, getLecturePreviewUrl } from "@/services/urlUtils";
|
import { getCourseUrl, getLecturePreviewUrl } from "@/services/urlUtils";
|
||||||
import { useCourseContext } from "../../context/courseContext";
|
import { useCourseContext } from "../../context/courseContext";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { Suspense } from "react";
|
|||||||
import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
|
import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
|
||||||
import { MyToaster } from "./MyToaster";
|
import { MyToaster } from "./MyToaster";
|
||||||
import { createServerSideHelpers } from "@trpc/react-query/server";
|
import { createServerSideHelpers } from "@trpc/react-query/server";
|
||||||
import { trpcAppRouter } from "@/services/serverFunctions/router/appRouter";
|
import { trpcAppRouter } from "@/services/serverFunctions/appRouter";
|
||||||
import { createTrpcContext } from "@/services/serverFunctions/context";
|
import { createTrpcContext } from "@/services/serverFunctions/context";
|
||||||
import superjson from "superjson";
|
import superjson from "superjson";
|
||||||
import { fileStorageService } from "@/features/local/utils/fileStorageService";
|
import { fileStorageService } from "@/features/local/utils/fileStorageService";
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import path from "path";
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import { courseItemFileStorageService } from "@/features/local/course/courseItemFileStorageService";
|
import { courseItemFileStorageService } from "@/features/local/course/courseItemFileStorageService";
|
||||||
import { getCoursePathByName } from "@/features/local/globalSettings/globalSettingsFileStorageService";
|
import { getCoursePathByName } from "@/features/local/globalSettings/globalSettingsFileStorageService";
|
||||||
import { directoryOrFileExists } from "@/services/fileStorage/utils/fileSystemUtils";
|
import { directoryOrFileExists } from "@/features/local/utils/fileSystemUtils";
|
||||||
|
|
||||||
const getAssignmentNames = async (courseName: string, moduleName: string) => {
|
const getAssignmentNames = async (courseName: string, moduleName: string) => {
|
||||||
const courseDirectory = await getCoursePathByName(courseName);
|
const courseDirectory = await getCoursePathByName(courseName);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
import { directoryOrFileExists } from "../../../services/fileStorage/utils/fileSystemUtils";
|
import { directoryOrFileExists } from "../utils/fileSystemUtils";
|
||||||
import fs from "fs/promises";
|
import fs from "fs/promises";
|
||||||
import {
|
import {
|
||||||
LocalAssignment,
|
LocalAssignment,
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import {
|
import { basePath, directoryOrFileExists } from "../utils/fileSystemUtils";
|
||||||
basePath,
|
|
||||||
directoryOrFileExists,
|
|
||||||
} from "../../../services/fileStorage/utils/fileSystemUtils";
|
|
||||||
import { AssignmentSubmissionType } from "@/features/local/assignments/models/assignmentSubmissionType";
|
import { AssignmentSubmissionType } from "@/features/local/assignments/models/assignmentSubmissionType";
|
||||||
import {
|
import {
|
||||||
getCoursePathByName,
|
getCoursePathByName,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { basePath } from "../../../services/fileStorage/utils/fileSystemUtils";
|
import { basePath } from "../utils/fileSystemUtils";
|
||||||
import {
|
import {
|
||||||
GlobalSettings,
|
GlobalSettings,
|
||||||
zodGlobalSettings,
|
zodGlobalSettings,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
parseLecture,
|
parseLecture,
|
||||||
getLectureWeekName,
|
getLectureWeekName,
|
||||||
lectureToString,
|
lectureToString,
|
||||||
} from "@/services/fileStorage/utils/lectureUtils";
|
} from "@/features/local/lectures/lectureUtils";
|
||||||
import {
|
import {
|
||||||
LocalCourseSettings,
|
LocalCourseSettings,
|
||||||
getDayOfWeek,
|
getDayOfWeek,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import { lectureFolderName } from "../../../services/fileStorage/utils/lectureUtils";
|
import { lectureFolderName } from "../lectures/lectureUtils";
|
||||||
import { getCoursePathByName } from "../globalSettings/globalSettingsFileStorageService";
|
import { getCoursePathByName } from "../globalSettings/globalSettingsFileStorageService";
|
||||||
|
|
||||||
export const moduleFileStorageService = {
|
export const moduleFileStorageService = {
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import {
|
import { basePath, directoryOrFileExists } from "./fileSystemUtils";
|
||||||
basePath,
|
|
||||||
directoryOrFileExists,
|
|
||||||
} from "../../../services/fileStorage/utils/fileSystemUtils";
|
|
||||||
import { quizFileStorageService } from "../quizzes/quizFileStorageService";
|
import { quizFileStorageService } from "../quizzes/quizFileStorageService";
|
||||||
import { pageFileStorageService } from "../pages/pageFileStorageService";
|
import { pageFileStorageService } from "../pages/pageFileStorageService";
|
||||||
import { moduleFileStorageService } from "../modules/moduleFileStorageService";
|
import { moduleFileStorageService } from "../modules/moduleFileStorageService";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import { getGlobalSettings } from "../../../features/local/globalSettings/globalSettingsFileStorageService";
|
import { getGlobalSettings } from "../globalSettings/globalSettingsFileStorageService";
|
||||||
|
|
||||||
export const directoryOrFileExists = async (
|
export const directoryOrFileExists = async (
|
||||||
directoryPath: string
|
directoryPath: string
|
||||||
32
src/services/serverFunctions/appRouter.ts
Normal file
32
src/services/serverFunctions/appRouter.ts
Normal 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;
|
||||||
@@ -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;
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { createTRPCReact } from "@trpc/react-query";
|
import { createTRPCReact } from "@trpc/react-query";
|
||||||
import { createTRPCContext } from "@trpc/tanstack-react-query";
|
import { createTRPCContext } from "@trpc/tanstack-react-query";
|
||||||
import { AppRouter } from "./router/appRouter";
|
import { AppRouter } from "./appRouter";
|
||||||
|
|
||||||
export const trpc = createTRPCReact<AppRouter>();
|
export const trpc = createTRPCReact<AppRouter>();
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { describe, it, expect, beforeEach } from "vitest";
|
import { describe, it, expect, beforeEach } from "vitest";
|
||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import { fileStorageService } from "../../features/local/utils/fileStorageService";
|
import { fileStorageService } from "../../features/local/utils/fileStorageService";
|
||||||
import { basePath } from "../fileStorage/utils/fileSystemUtils";
|
import { basePath } from "../../features/local/utils/fileSystemUtils";
|
||||||
|
|
||||||
describe("FileStorageTests", () => {
|
describe("FileStorageTests", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
import { lectureToString } from "../fileStorage/utils/lectureUtils";
|
import { lectureToString } from "../../features/local/lectures/lectureUtils";
|
||||||
import { parseLecture } from "../fileStorage/utils/lectureUtils";
|
import { parseLecture } from "../../features/local/lectures/lectureUtils";
|
||||||
import { Lecture } from "@/features/local/lectures/lectureModel";
|
import { Lecture } from "@/features/local/lectures/lectureModel";
|
||||||
|
|
||||||
describe("can parse and stringify lectures", () => {
|
describe("can parse and stringify lectures", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user