latex rabbit hole

This commit is contained in:
2024-09-18 22:24:08 -06:00
parent 395e9934e6
commit 225a65b53c
2 changed files with 52 additions and 26 deletions

View File

@@ -112,7 +112,7 @@ export async function POST(
} catch (error: any) { } catch (error: any) {
if (isAxiosError(error)) { if (isAxiosError(error)) {
console.log(url.toString(), body); console.log(url.toString(), body);
console.log("response data", JSON.stringify( error.response?.data)); console.log("response data", JSON.stringify(error.response?.data));
console.log("is axios error"); console.log("is axios error");
} }
return NextResponse.json( return NextResponse.json(
@@ -130,16 +130,30 @@ export async function PUT(
{ params }: { params: { rest: string[] } } { params }: { params: { rest: string[] } }
) { ) {
return withErrorHandling(async () => { return withErrorHandling(async () => {
const url = getUrl(params);
const body = await req.json();
try { try {
const url = getUrl(params);
const body = await req.json();
const response = await axiosClient.put(url.toString(), body); const response = await axiosClient.put(url.toString(), body);
const headers = proxyResponseHeaders(response); const headers = proxyResponseHeaders(response);
return new NextResponse(JSON.stringify(response.data), { headers }); return new NextResponse(JSON.stringify(response.data), { headers });
} catch (error: any) { } catch (error: any) {
return new NextResponse( if (isAxiosError(error)) {
JSON.stringify({ error: error.message || "Canvas PUT request failed" }), console.log(url.toString(), body);
console.log("response data", JSON.stringify(error.response?.data));
console.log("is axios error");
return NextResponse.json(
{
error: error.response?.data ?? "Canvas put failed",
},
{ status: error.response?.status || 500 }
);
}
return NextResponse.json(
{
error: error.message || "Canvas POST request failed",
},
{ status: error.response?.status || 500 } { status: error.response?.status || 500 }
); );
} }

View File

@@ -15,15 +15,23 @@ const createRubric = async (
assignmentCanvasId: number, assignmentCanvasId: number,
localAssignment: LocalAssignment localAssignment: LocalAssignment
) => { ) => {
const criterion = localAssignment.rubric.map((rubricItem, i) => ({ const criterion = localAssignment.rubric
description: rubricItem.label, .map((rubricItem) => ({
points: rubricItem.points, description: rubricItem.label,
ratings: [ points: rubricItem.points,
{ description: "Full Marks", points: rubricItem.points }, ratings: {
{ description: "No Marks", points: 0 }, 0: { description: "Full Marks", points: rubricItem.points },
], 1: { description: "No Marks", points: 0 },
})); },
}))
.reduce((acc, item, index) => {
return {
...acc,
[index]: item,
};
}, {} as { [key: number]: { description: string; points: number; ratings: { [key: number]: { description: string; points: number } } } });
console.log(criterion);
const rubricBody = { const rubricBody = {
rubric_association_id: assignmentCanvasId, rubric_association_id: assignmentCanvasId,
rubric: { rubric: {
@@ -116,18 +124,22 @@ export const canvasAssignmentService = {
console.log(`Updating assignment: ${localAssignment.name}`); console.log(`Updating assignment: ${localAssignment.name}`);
const url = `${canvasApi}/courses/${courseId}/assignments/${canvasAssignmentId}`; const url = `${canvasApi}/courses/${courseId}/assignments/${canvasAssignmentId}`;
const body = { const body = {
name: localAssignment.name, assignment: {
submission_types: localAssignment.submissionTypes.map((t) => name: localAssignment.name,
t.toString() submission_types: localAssignment.submissionTypes.map((t) =>
), t.toString()
allowed_extensions: localAssignment.allowedFileUploadExtensions.map((e) => ),
e.toString() allowed_extensions: localAssignment.allowedFileUploadExtensions.map(
), (e) => e.toString()
description: markdownToHTMLSafe(localAssignment.description), ),
due_at: localAssignment.dueAt, description: markdownToHTMLSafe(localAssignment.description),
lock_at: localAssignment.lockAt, due_at: getDateFromString(localAssignment.dueAt)?.toISOString(),
points_possible: assignmentPoints(localAssignment), lock_at:
assignment_group_id: canvasAssignmentGroupId, localAssignment.lockAt &&
getDateFromString(localAssignment.lockAt)?.toISOString(),
points_possible: assignmentPoints(localAssignment),
assignment_group_id: canvasAssignmentGroupId,
},
}; };
await axiosClient.put(url, body); await axiosClient.put(url, body);
@@ -138,7 +150,7 @@ export const canvasAssignmentService = {
courseId: number, courseId: number,
assignmentCanvasId: number, assignmentCanvasId: number,
assignmentName: string assignmentName: string
): Promise<void> { ) {
console.log(`Deleting assignment from Canvas: ${assignmentName}`); console.log(`Deleting assignment from Canvas: ${assignmentName}`);
const url = `${canvasApi}/courses/${courseId}/assignments/${assignmentCanvasId}`; const url = `${canvasApi}/courses/${courseId}/assignments/${assignmentCanvasId}`;
const response = await axiosClient.delete(url); const response = await axiosClient.delete(url);