mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 15:48:32 -06:00
workign on test folders
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { AssignmentSubmissionType } from "./assignmentSubmissionType";
|
||||
import { RubricItem } from "./rubricItem";
|
||||
import { assignmentMarkdownParser } from "./utils/assignmentMarkdownParser";
|
||||
import { assignmentMarkdownSerializer } from "./utils/assignmentMarkdownSerializer";
|
||||
|
||||
export interface LocalAssignment {
|
||||
name: string;
|
||||
@@ -11,3 +13,8 @@ export interface LocalAssignment {
|
||||
allowedFileUploadExtensions: string[];
|
||||
rubric: RubricItem[];
|
||||
}
|
||||
|
||||
export const localAssignmentMarkdown = {
|
||||
parseMarkdown: assignmentMarkdownParser.parseMarkdown,
|
||||
toMarkdown: assignmentMarkdownSerializer.toMarkdown,
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { LocalAssignmentGroup } from "./assignmnet/localAssignmentGroup";
|
||||
import { LocalModule } from "./localModules";
|
||||
import { parse, stringify } from "yaml";
|
||||
|
||||
export interface LocalCourse {
|
||||
modules: LocalModule[];
|
||||
@@ -30,14 +31,11 @@ export enum DayOfWeek {
|
||||
Friday = "Friday",
|
||||
Saturday = "Saturday",
|
||||
}
|
||||
|
||||
// export const LocalCourseSettingsUtils = {
|
||||
// toYaml(settings: LocalCourseSettings): string {
|
||||
// return dump(settings, { noRefs: true });
|
||||
// },
|
||||
|
||||
// parseYaml(rawText: string): LocalCourseSettings {
|
||||
// const settings = load(rawText) as LocalCourseSettings;
|
||||
// return createLocalCourseSettings(settings);
|
||||
// },
|
||||
// };
|
||||
export const localCourseYamlUtils = {
|
||||
parseSettingYaml: (settingsString: string): LocalCourseSettings => {
|
||||
return parse(settingsString);
|
||||
},
|
||||
settingsToYaml: (settings: LocalCourseSettings) => {
|
||||
return stringify(settings);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { extractLabelValue } from "../assignmnet/utils/markdownUtils";
|
||||
import { IModuleItem } from "../IModuleItem";
|
||||
|
||||
export interface LocalCoursePage extends IModuleItem {
|
||||
@@ -5,3 +6,33 @@ export interface LocalCoursePage extends IModuleItem {
|
||||
text: string;
|
||||
dueAt: string;
|
||||
}
|
||||
|
||||
export const localPageMarkdownUtils = {
|
||||
toMarkdown: (page: LocalCoursePage) => {
|
||||
const printableDueDate = new Date(page.dueAt)
|
||||
.toISOString()
|
||||
.replace("\u202F", " ");
|
||||
const settingsMarkdown = `Name: ${page.name}\nDueDateForOrdering: ${printableDueDate}\n---\n`;
|
||||
return settingsMarkdown + page.text;
|
||||
},
|
||||
|
||||
parseMarkdown: (pageMarkdown: string) => {
|
||||
const rawSettings = pageMarkdown.split("---")[0];
|
||||
const name = extractLabelValue(rawSettings, "Name");
|
||||
const rawDate = extractLabelValue(rawSettings, "DueDateForOrdering");
|
||||
|
||||
const parsedDate = new Date(rawDate);
|
||||
if (isNaN(parsedDate.getTime())) {
|
||||
throw new Error(`could not parse due date: ${rawDate}`);
|
||||
}
|
||||
|
||||
const text = pageMarkdown.split("---\n")[1];
|
||||
|
||||
const page: LocalCoursePage = {
|
||||
name,
|
||||
dueAt: parsedDate.toISOString(),
|
||||
text,
|
||||
};
|
||||
return page;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
import { extractLabelValue } from "../assignmnet/utils/markdownUtils";
|
||||
import { LocalCoursePage } from "./localCoursePage";
|
||||
|
||||
export const pageMarkdownUtils = {
|
||||
toMarkdown: (page: LocalCoursePage) => {
|
||||
const printableDueDate = new Date(page.dueAt)
|
||||
.toISOString()
|
||||
.replace("\u202F", " ");
|
||||
const settingsMarkdown = `Name: ${page.name}\nDueDateForOrdering: ${printableDueDate}\n---\n`;
|
||||
return settingsMarkdown + page.text;
|
||||
},
|
||||
|
||||
parseMarkdown: (pageMarkdown: string) => {
|
||||
const rawSettings = pageMarkdown.split("---")[0];
|
||||
const name = extractLabelValue(rawSettings, "Name");
|
||||
const rawDate = extractLabelValue(rawSettings, "DueDateForOrdering");
|
||||
|
||||
const parsedDate = new Date(rawDate);
|
||||
if (isNaN(parsedDate.getTime())) {
|
||||
throw new Error(`could not parse due date: ${rawDate}`);
|
||||
}
|
||||
|
||||
const text = pageMarkdown.split("---\n")[1];
|
||||
|
||||
const page: LocalCoursePage = {
|
||||
name,
|
||||
dueAt: parsedDate.toISOString(),
|
||||
text,
|
||||
};
|
||||
return page;
|
||||
},
|
||||
};
|
||||
@@ -1,4 +1,5 @@
|
||||
import { LocalQuizQuestion } from "./localQuizQuestion";
|
||||
import { quizMarkdownUtils } from "./utils/quizMarkdownUtils";
|
||||
|
||||
export interface LocalQuiz {
|
||||
name: string;
|
||||
@@ -13,3 +14,8 @@ export interface LocalQuiz {
|
||||
allowedAttempts: number;
|
||||
questions: LocalQuizQuestion[];
|
||||
}
|
||||
|
||||
export const localQuizMarkdownUtils = {
|
||||
parseMarkdown: quizMarkdownUtils.parseMarkdown,
|
||||
toMarkdown: quizMarkdownUtils.toMarkdown,
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
export const getDateFromString = (value: string) => {
|
||||
// may need to check for other formats
|
||||
const validDateRegex =
|
||||
/([1-9][1-9]|[0-2])\/(0[1-9]|[1-2][0-9]|3[01])\/\d{4} (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/;
|
||||
/\d{2}\/\d{2}\/\d{4} [0-2][0-9]|[0-5][0-9]|[0-2][0-9]:[0-5][0-9]:[0-5][0-9]/;
|
||||
if (!validDateRegex.test(value)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user