server actions

This commit is contained in:
2024-10-29 13:19:34 -06:00
parent 09a0e0b6c9
commit 6b59960189
14 changed files with 347 additions and 436 deletions

View File

@@ -1,95 +0,0 @@
import { LocalAssignment } from "@/models/local/assignment/localAssignment";
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
import { revalidatePath } from "next/cache";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName, assignmentName },
}: {
params: { courseName: string; moduleName: string; assignmentName: string };
}
) =>
await withErrorHandling(async () => {
const assignment = await fileStorageService.assignments.getAssignment(
courseName,
moduleName,
assignmentName
);
return Response.json(assignment);
});
export const PUT = async (
request: Request,
{
params: { courseName, moduleName, assignmentName },
}: {
params: { courseName: string; moduleName: string; assignmentName: string };
}
) =>
await withErrorHandling(async () => {
const { assignment, previousModuleName, previousAssignmentName } =
(await request.json()) as {
assignment: LocalAssignment;
previousModuleName: string;
previousAssignmentName: string;
};
await fileStorageService.assignments.updateOrCreateAssignment({
courseName,
moduleName,
assignmentName,
assignment,
});
if (
assignment.name !== previousAssignmentName ||
moduleName !== previousModuleName
) {
fileStorageService.assignments.delete({
courseName,
moduleName: previousModuleName,
assignmentName: previousAssignmentName,
});
}
return Response.json({});
});
export const POST = async (
request: Request,
{
params: { courseName, moduleName, assignmentName },
}: {
params: { courseName: string; moduleName: string; assignmentName: string };
}
) =>
await withErrorHandling(async () => {
const assignment = await request.json();
await fileStorageService.assignments.updateOrCreateAssignment({
courseName,
moduleName,
assignmentName,
assignment,
});
return Response.json({});
});
export const DELETE = async (
_request: Request,
{
params: { courseName, moduleName, assignmentName },
}: {
params: { courseName: string; moduleName: string; assignmentName: string };
}
) =>
await withErrorHandling(async () => {
fileStorageService.assignments.delete({
courseName,
moduleName,
assignmentName,
});
return Response.json({});
});

View File

@@ -1,17 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName },
}: { params: { courseName: string; moduleName: string } }
) =>
await withErrorHandling(async () => {
const assignments = await fileStorageService.assignments.getAssignments(
courseName,
moduleName
);
return Response.json(assignments);
});

View File

@@ -1,78 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName, pageName },
}: { params: { courseName: string; moduleName: string; pageName: string } }
) =>
await withErrorHandling(async () => {
const settings = await fileStorageService.pages.getPage(
courseName,
moduleName,
pageName
);
return Response.json(settings);
});
export const PUT = async (
request: Request,
{
params: { courseName, moduleName, pageName },
}: { params: { courseName: string; moduleName: string; pageName: string } }
) =>
await withErrorHandling(async () => {
const { page, previousModuleName, previousPageName } = await request.json();
await fileStorageService.pages.updatePage(
courseName,
moduleName,
pageName,
page
);
if (
previousModuleName &&
previousPageName &&
(page.name !== previousPageName || moduleName !== previousModuleName)
) {
fileStorageService.pages.delete({
courseName,
moduleName: previousModuleName,
pageName: previousPageName,
});
}
return Response.json({});
});
export const POST = async (
request: Request,
{
params: { courseName, moduleName, pageName },
}: { params: { courseName: string; moduleName: string; pageName: string } }
) =>
await withErrorHandling(async () => {
const page = await request.json();
await fileStorageService.pages.updatePage(
courseName,
moduleName,
pageName,
page
);
return Response.json({});
});
export const DELETE = async (
_request: Request,
{
params: { courseName, moduleName, pageName },
}: { params: { courseName: string; moduleName: string; pageName: string } }
) =>
await withErrorHandling(async () => {
fileStorageService.pages.delete({
courseName,
moduleName,
pageName,
});
return Response.json({});
});

View File

@@ -1,16 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName },
}: { params: { courseName: string; moduleName: string } }
) =>
await withErrorHandling(async () => {
const pages = await fileStorageService.pages.getPages(
courseName,
moduleName
);
return Response.json(pages);
});

View File

@@ -1,84 +0,0 @@
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName, quizName },
}: { params: { courseName: string; moduleName: string; quizName: string } }
) =>
await withErrorHandling(async () => {
const quiz = await fileStorageService.quizzes.getQuiz(
courseName,
moduleName,
quizName
);
return Response.json(quiz);
});
export const PUT = async (
request: Request,
{
params: { courseName, moduleName, quizName },
}: { params: { courseName: string; moduleName: string; quizName: string } }
) =>
await withErrorHandling(async () => {
const { quiz, previousModuleName, previousQuizName } =
(await request.json()) as {
quiz: LocalQuiz;
previousModuleName?: string;
previousQuizName?: string;
};
await fileStorageService.quizzes.updateQuiz(
courseName,
moduleName,
quizName,
quiz
);
if (
previousModuleName &&
previousQuizName &&
(quiz.name !== previousQuizName || moduleName !== previousModuleName)
) {
fileStorageService.quizzes.delete({
courseName,
moduleName: previousModuleName,
quizName: previousQuizName,
});
}
return Response.json({});
});
export const POST = async (
request: Request,
{
params: { courseName, moduleName, quizName },
}: { params: { courseName: string; moduleName: string; quizName: string } }
) =>
await withErrorHandling(async () => {
const quiz = await request.json();
await fileStorageService.quizzes.updateQuiz(
courseName,
moduleName,
quizName,
quiz
);
return Response.json({});
});
export const DELETE = async (
_request: Request,
{
params: { courseName, moduleName, quizName },
}: { params: { courseName: string; moduleName: string; quizName: string } }
) =>
await withErrorHandling(async () => {
fileStorageService.quizzes.delete({
courseName,
moduleName,
quizName,
});
return Response.json({});
});

View File

@@ -1,16 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{
params: { courseName, moduleName },
}: { params: { courseName: string; moduleName: string } }
) =>
await withErrorHandling(async () => {
const quizzes = await fileStorageService.quizzes.getQuizzes(
courseName,
moduleName
);
return Response.json(quizzes);
});

View File

@@ -1,21 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const GET = async (
_request: Request,
{ params: { courseName } }: { params: { courseName: string } }
) =>
await withErrorHandling(async () => {
const settings = await fileStorageService.modules.getModuleNames(courseName);
return Response.json(settings);
});
export const POST = async (
request: Request,
{ params: { courseName } }: { params: { courseName: string } }
) =>
await withErrorHandling(async () => {
const { moduleName } = await request.json();
await fileStorageService.modules.createModule(courseName, moduleName);
return Response.json({});
});

View File

@@ -1,16 +0,0 @@
import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { withErrorHandling } from "@/services/withErrorHandling";
export const PUT = async (
request: Request,
{ params: { courseName } }: { params: { courseName: string } }
) =>
await withErrorHandling(async () => {
const { updatedCourse, previousCourse } = await request.json();
console.log(updatedCourse);
console.log(courseName);
// await fileStorageService.saveCourseAsync(updatedCourse, previousCourse);
return Response.json({});
});