mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
117 lines
3.1 KiB
TypeScript
117 lines
3.1 KiB
TypeScript
import publicProcedure from "../procedures/public";
|
|
import { z } from "zod";
|
|
import { router } from "../trpcSetup";
|
|
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
|
|
import { zodLocalAssignment } from "@/models/local/assignment/localAssignment";
|
|
|
|
export const assignmentRouter = router({
|
|
getAssignment: publicProcedure
|
|
.input(
|
|
z.object({
|
|
courseName: z.string(),
|
|
moduleName: z.string(),
|
|
assignmentName: z.string(),
|
|
})
|
|
)
|
|
.query(async ({ input: { courseName, moduleName, assignmentName } }) => {
|
|
const assignment = await fileStorageService.assignments.getAssignment(
|
|
courseName,
|
|
moduleName,
|
|
assignmentName
|
|
);
|
|
// console.log(assignment);
|
|
return assignment;
|
|
}),
|
|
getAllAssignments: publicProcedure
|
|
.input(
|
|
z.object({
|
|
courseName: z.string(),
|
|
moduleName: z.string(),
|
|
})
|
|
)
|
|
.query(async ({ input: { courseName, moduleName } }) => {
|
|
const assignments = await fileStorageService.assignments.getAssignments(
|
|
courseName,
|
|
moduleName
|
|
);
|
|
return assignments;
|
|
}),
|
|
createAssignment: publicProcedure
|
|
.input(
|
|
z.object({
|
|
courseName: z.string(),
|
|
moduleName: z.string(),
|
|
assignmentName: z.string(),
|
|
assignment: zodLocalAssignment,
|
|
})
|
|
)
|
|
.mutation(
|
|
async ({
|
|
input: { courseName, moduleName, assignmentName, assignment },
|
|
}) => {
|
|
await fileStorageService.assignments.updateOrCreateAssignment({
|
|
courseName,
|
|
moduleName,
|
|
assignmentName,
|
|
assignment,
|
|
});
|
|
}
|
|
),
|
|
updateAssignment: publicProcedure
|
|
.input(
|
|
z.object({
|
|
courseName: z.string(),
|
|
moduleName: z.string(),
|
|
previousModuleName: z.string(),
|
|
previousAssignmentName: z.string(),
|
|
assignmentName: z.string(),
|
|
assignment: zodLocalAssignment,
|
|
})
|
|
)
|
|
.mutation(
|
|
async ({
|
|
input: {
|
|
courseName,
|
|
moduleName,
|
|
assignmentName,
|
|
assignment,
|
|
previousModuleName,
|
|
previousAssignmentName,
|
|
},
|
|
}) => {
|
|
await fileStorageService.assignments.updateOrCreateAssignment({
|
|
courseName,
|
|
moduleName,
|
|
assignmentName,
|
|
assignment,
|
|
});
|
|
|
|
if (
|
|
assignment.name !== previousAssignmentName ||
|
|
moduleName !== previousModuleName
|
|
) {
|
|
fileStorageService.assignments.delete({
|
|
courseName,
|
|
moduleName: previousModuleName,
|
|
assignmentName: previousAssignmentName,
|
|
});
|
|
}
|
|
}
|
|
),
|
|
deleteAssignment: publicProcedure
|
|
.input(
|
|
z.object({
|
|
courseName: z.string(),
|
|
moduleName: z.string(),
|
|
assignmentName: z.string(),
|
|
})
|
|
)
|
|
.mutation(async ({ input: { courseName, moduleName, assignmentName } }) => {
|
|
await fileStorageService.assignments.delete({
|
|
courseName,
|
|
moduleName,
|
|
assignmentName,
|
|
});
|
|
}),
|
|
});
|