aboutsummaryrefslogtreecommitdiff
path: root/js/mock.js
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-06-13 13:04:07 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-06-13 13:04:07 +0200
commit4882c5ca3a65075e03595588ef3780a36bc74b15 (patch)
tree07aa2a276cd87a8e192147440411c1f51d8aa624 /js/mock.js
parent9fbd21ff6bf97b9ce77cb78f420abd951b8aaf27 (diff)
downloadbycs-sol-4882c5ca3a65075e03595588ef3780a36bc74b15.tar.gz
bycs-sol-4882c5ca3a65075e03595588ef3780a36bc74b15.zip
move generic js into root
Diffstat (limited to 'js/mock.js')
-rw-r--r--js/mock.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/js/mock.js b/js/mock.js
new file mode 100644
index 0000000..a189a11
--- /dev/null
+++ b/js/mock.js
@@ -0,0 +1,77 @@
+import { Graduation, GraduationChange } from "./graduation-common.js";
+import { Student } from "./student-common.js";
+
+const students = [
+ new Student(1, 'foo bar', 'test'),
+ new Student(2, 'maxi mustermensch', 'test'),
+ new Student(3, 'b b b', '5a')
+];
+
+function fetchStudentsMock() {
+ return new Promise((resolve) => { resolve(students); });
+}
+
+function fetchSubjectsMock() {
+ return new Promise((resolve) => {
+ resolve(['Mathe', 'Deutsch', 'Englisch']);
+ });
+}
+
+function fetchProgressMock(subject) {
+ return new Promise((resolve) => {
+ if (subject === "Mathe") {
+ resolve([40, 10, 3]);
+ } else if (subject === "Deutsch") {
+ resolve([10, 2, 0]);
+ } else if (subject === "Englisch") {
+ resolve([50, 25, 10]);
+ } else {
+ resolve([0, 0, 0]);
+ }
+ });
+}
+
+const graduationChanges = {};
+for (const s of students) {
+ switch (s.name) {
+ case "foo bar":
+ graduationChanges[s.name] = [
+ GraduationChange.newGreenPointChange(s, "", "Florian Fischer"),
+ GraduationChange.newOrangePointChange(s, "", "Florian Fischer"),
+ ];
+ break;
+ case "maxi mustermensch":
+ graduationChanges[s.name] = [
+ GraduationChange.newGreenPointChange(s, "", "Florian Fischer"),
+ GraduationChange.newGreenPointChange(s, "", "Florian Fischer"),
+ ];
+ break;
+ case "b b b":
+ graduationChanges[s.name] = [
+ GraduationChange.newRedPointChange(s, "", "Florian Fischer"),
+ ];
+ }
+}
+
+function fetchGraduationMock(s) {
+ return new Promise((resolve) => {
+ const changes = graduationChanges[s.name];
+ if (!changes) {
+ resolve(null);
+ } else {
+ resolve(Graduation.from(s, graduationChanges[s.name]));
+ }
+ });
+}
+
+function submitGraduationChangeMock(s, c) {
+ s.graduation.addChange(c);
+}
+
+export {
+ fetchStudentsMock,
+ fetchSubjectsMock,
+ fetchProgressMock,
+ fetchGraduationMock,
+ submitGraduationChangeMock,
+};