mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
55 lines
2.0 KiB
TypeScript
55 lines
2.0 KiB
TypeScript
import { AssignmentSubmissionType } from "../assignmentSubmissionType";
|
|
import { LocalAssignment } from "../localAssignment";
|
|
import { RubricItem } from "../rubricItem";
|
|
|
|
const assignmentRubricToMarkdown = (assignment: LocalAssignment) => {
|
|
return assignment.rubric
|
|
.map((item: RubricItem) => {
|
|
const pointLabel = item.points > 1 ? "pts" : "pt";
|
|
return `- ${item.points}${pointLabel}: ${item.label}`;
|
|
})
|
|
.join("\n");
|
|
};
|
|
|
|
const settingsToMarkdown = (assignment: LocalAssignment) => {
|
|
const printableDueDate = assignment.dueAt.toString().replace("\u202F", " ");
|
|
const printableLockAt =
|
|
assignment.lockAt?.toString().replace("\u202F", " ") || "";
|
|
|
|
const submissionTypesMarkdown = assignment.submissionTypes
|
|
.map((submissionType: AssignmentSubmissionType) => `- ${submissionType}`)
|
|
.join("\n");
|
|
|
|
const allowedFileUploadExtensionsMarkdown =
|
|
assignment.allowedFileUploadExtensions
|
|
.map((fileExtension: string) => `- ${fileExtension}`)
|
|
.join("\n");
|
|
|
|
const settingsMarkdownArr = [
|
|
`LockAt: ${printableLockAt}`,
|
|
`DueAt: ${printableDueDate}`,
|
|
`AssignmentGroupName: ${assignment.localAssignmentGroupName}`,
|
|
`GithubClassroomAssignmentLink: ${assignment.githubClassroomAssignmentLink ?? ""}`,
|
|
`GithubClassroomAssignmentShareLink: ${assignment.githubClassroomAssignmentShareLink ?? ""}`,
|
|
`SubmissionTypes:\n${submissionTypesMarkdown}`,
|
|
`AllowedFileUploadExtensions:\n${allowedFileUploadExtensionsMarkdown}`,
|
|
];
|
|
return settingsMarkdownArr.join("\n");
|
|
};
|
|
|
|
export const assignmentMarkdownSerializer = {
|
|
toMarkdown(assignment: LocalAssignment): string {
|
|
try {
|
|
const settingsMarkdown = settingsToMarkdown(assignment);
|
|
const rubricMarkdown = assignmentRubricToMarkdown(assignment);
|
|
const assignmentMarkdown = `${settingsMarkdown}\n---\n\n${assignment.description}\n\n## Rubric\n\n${rubricMarkdown}`;
|
|
|
|
return assignmentMarkdown;
|
|
} catch (e) {
|
|
console.log(assignment);
|
|
console.log("Error converting assignment to markdown");
|
|
throw e;
|
|
}
|
|
},
|
|
};
|