mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
more trpc
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
"use server";
|
||||
|
||||
import path from "path";
|
||||
import { basePath } from "./utils/fileSystemUtils";
|
||||
import fs from "fs/promises";
|
||||
|
||||
@@ -2,7 +2,9 @@ import { createTrpcContext } from "../context";
|
||||
import publicProcedure from "../procedures/public";
|
||||
import { createCallerFactory, router } from "../trpc";
|
||||
import { assignmentRouter } from "./assignmentRouter";
|
||||
import { directoriesRouter } from "./directoriesRouter";
|
||||
import { lectureRouter } from "./lectureRouter";
|
||||
import { moduleRouter } from "./moduleRouter";
|
||||
import { pageRouter } from "./pageRouter";
|
||||
import { quizRouter } from "./quizRouter";
|
||||
import { settingsRouter } from "./settingsRouter";
|
||||
@@ -22,6 +24,8 @@ export const trpcAppRouter = router({
|
||||
settings: settingsRouter,
|
||||
quiz: quizRouter,
|
||||
page: pageRouter,
|
||||
module: moduleRouter,
|
||||
directories: directoriesRouter,
|
||||
});
|
||||
|
||||
export const createCaller = createCallerFactory(trpcAppRouter);
|
||||
|
||||
11
nextjs/src/services/trpc/router/directoriesRouter.ts
Normal file
11
nextjs/src/services/trpc/router/directoriesRouter.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import publicProcedure from "../procedures/public";
|
||||
import { z } from "zod";
|
||||
import { router } from "../trpc";
|
||||
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
|
||||
import { zodLocalAssignment } from "@/models/local/assignment/localAssignment";
|
||||
|
||||
export const directoriesRouter = router({
|
||||
getEmptyDirectories: publicProcedure.query(async () => {
|
||||
return await fileStorageService.getEmptyDirectories()
|
||||
})
|
||||
})
|
||||
@@ -1,15 +1,40 @@
|
||||
import { z } from "zod";
|
||||
import publicProcedure from "../procedures/public";
|
||||
import { router } from "../trpc";
|
||||
import { getLectures } from "@/services/fileStorage/lectureFileStorageService";
|
||||
|
||||
import {
|
||||
deleteLecture,
|
||||
getLectures,
|
||||
updateLecture,
|
||||
} from "@/services/fileStorage/lectureFileStorageService";
|
||||
import { zodLecture } from "@/models/local/lecture";
|
||||
import { zodLocalCourseSettings } from "@/models/local/localCourseSettings";
|
||||
|
||||
export const lectureRouter = router({
|
||||
getLectures: publicProcedure
|
||||
.input(z.object({
|
||||
courseName: z.string()
|
||||
}))
|
||||
.query(async ({input: {courseName}}) => {
|
||||
return await getLectures(courseName)
|
||||
})
|
||||
})
|
||||
.input(
|
||||
z.object({
|
||||
courseName: z.string(),
|
||||
})
|
||||
)
|
||||
.query(async ({ input: { courseName } }) => {
|
||||
return await getLectures(courseName);
|
||||
}),
|
||||
updateLecture: publicProcedure
|
||||
.input(
|
||||
z.object({
|
||||
courseName: z.string(),
|
||||
lecture: zodLecture,
|
||||
previousDay: z.string().optional(),
|
||||
settings: zodLocalCourseSettings,
|
||||
})
|
||||
)
|
||||
.mutation(
|
||||
async ({ input: { courseName, settings, lecture, previousDay } }) => {
|
||||
await updateLecture(courseName, settings, lecture);
|
||||
|
||||
if (previousDay && previousDay !== lecture.date) {
|
||||
await deleteLecture(courseName, settings, previousDay);
|
||||
}
|
||||
}
|
||||
),
|
||||
});
|
||||
|
||||
26
nextjs/src/services/trpc/router/moduleRouter.ts
Normal file
26
nextjs/src/services/trpc/router/moduleRouter.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { z } from "zod";
|
||||
import publicProcedure from "../procedures/public";
|
||||
import { router } from "../trpc";
|
||||
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
|
||||
|
||||
export const moduleRouter = router({
|
||||
getModuleNames: publicProcedure
|
||||
.input(
|
||||
z.object({
|
||||
courseName: z.string(),
|
||||
})
|
||||
)
|
||||
.query(async ({ input: { courseName } }) => {
|
||||
return await fileStorageService.modules.getModuleNames(courseName);
|
||||
}),
|
||||
createModule: publicProcedure
|
||||
.input(
|
||||
z.object({
|
||||
courseName: z.string(),
|
||||
moduleName: z.string(),
|
||||
})
|
||||
)
|
||||
.mutation(async ({ input: { courseName, moduleName } }) => {
|
||||
await fileStorageService.modules.createModule(courseName, moduleName);
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user