diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2026-09-28 15:56:31 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2026-09-28 15:56:31 +0200 |
| commit | 482c006782c8270801d82e82e113fa5fba6b774d (patch) | |
| tree | 7c538097100ea633258064c0b1088e08e1071c24 /src | |
| parent | 5267fd80deb6ab5cdfba117b4f20f75b9f91fcfd (diff) | |
| download | bycs-sol-482c006782c8270801d82e82e113fa5fba6b774d.tar.gz bycs-sol-482c006782c8270801d82e82e113fa5fba6b774d.zip | |
utils: move get*Id functions into utils-common.ts
Diffstat (limited to 'src')
| -rw-r--r-- | src/admin-tools.js | 1 | ||||
| -rw-r--r-- | src/mock.ts | 26 | ||||
| -rw-r--r-- | src/utils-common.ts | 14 | ||||
| -rw-r--r-- | src/utils-mock.js | 25 | ||||
| -rw-r--r-- | src/utils-prod.js | 12 |
5 files changed, 46 insertions, 32 deletions
diff --git a/src/admin-tools.js b/src/admin-tools.js index 362d1b3..54c8d26 100644 --- a/src/admin-tools.js +++ b/src/admin-tools.js @@ -1,6 +1,7 @@ import { GraduationChange, submitGraduationChange } from "./graduation-ENV.ts"; import { fetchStudent, fetchStudents } from "./student-ENV.ts"; import { fetchCourses } from "./moodle-ENV.ts"; +import { getCourseId } from "./utils-ENV.js"; let outputNode; function output(msg) { diff --git a/src/mock.ts b/src/mock.ts index 14d408d..bbbc771 100644 --- a/src/mock.ts +++ b/src/mock.ts @@ -1,6 +1,26 @@ import { Graduation, GraduationChange } from "./graduation-common.ts"; import { Student } from "./student-common.ts"; +export function getName() { + let name = ""; + + const params = new URLSearchParams(document.location.search); + if (params.has("firstname")) name = params.get("firstname")!; + if (params.has("lastname")) name += " " + params.get("lastname")!; + + return name.trim(); +} + +globalThis.M = { + cfg: { + userId: (function () { + const name = getName(); + return _fetchStudentsMock().filter((s) => s.name === name)[0].id; + })(), + courseId: 1337, + }, +}; + const students = [ new Student(1, "foo bar"), new Student(2, "maxi mustermensch"), @@ -12,7 +32,7 @@ const students = [ new Student(8, "6"), ]; -async function fetchStudentsMock(id?: number, name?: string) { +function _fetchStudentsMock(id?: number, name?: string) { return students.filter((s) => { return ( (typeof id === "undefined" || s.id === id) && @@ -21,6 +41,10 @@ async function fetchStudentsMock(id?: number, name?: string) { }); } +async function fetchStudentsMock(id?: number, name?: string) { + return _fetchStudentsMock(id, name); +} + async function fetchSubjectsMock() { return ["Mathe", "Deutsch", "Englisch"]; } diff --git a/src/utils-common.ts b/src/utils-common.ts index 153bbaa..7bca889 100644 --- a/src/utils-common.ts +++ b/src/utils-common.ts @@ -22,6 +22,20 @@ export function datetimeStringNow() { return DATETIME_FMT.format(new Date()); } +declare global { + var M: { cfg: { userId: number; courseId: number } }; +} + +export function getUserId(): number { + // M is exported by Moodle + return globalThis.M.cfg.userId; +} + +export function getCourseId(): number { + // M is exported by Moodle + return globalThis.M.cfg.courseId; +} + // TODO(muhq): Cache the retrieved URL export async function getUserIconUrl(userId: number): Promise<string> { const userRes = await fetch(`https://lernplattform.bycs.de/user/profile.php?id=${userId}`); diff --git a/src/utils-mock.js b/src/utils-mock.js index 4fb2b10..99455f9 100644 --- a/src/utils-mock.js +++ b/src/utils-mock.js @@ -1,10 +1,13 @@ -import { fetchStudentsMock } from "./mock.ts"; +import { fetchStudentsMock, getName } from "./mock.ts"; +export { getName } from "./mock.ts"; export { DATE_FMT, DATETIME_FMT, dateStringNow, datetimeStringNow, + getCourseId, getUserIconUrl, + getUserId, splitmix32, } from "./utils-common.ts"; @@ -23,22 +26,6 @@ export function getFirstAndLastname() { return [firstname, lastname]; } -export function getName() { - let name = ""; - - const params = new URLSearchParams(document.location.search); - if (params.has("firstname")) name = params.get("firstname"); - if (params.has("lastname")) name += " " + params.get("lastname"); - - return name.trim(); -} - -export function getUserId() { - const name = getName(); - - return fetchStudentsMock.filter((s) => s.name === name)[0].id; -} - export function getActivityUrl(name) { switch (name) { case "Cockpit": @@ -48,10 +35,6 @@ export function getActivityUrl(name) { } } -export function getCourseId() { - return "1337"; -} - export function getSesskey() { return "sesskey"; } diff --git a/src/utils-prod.js b/src/utils-prod.js index 447a17a..3662c97 100644 --- a/src/utils-prod.js +++ b/src/utils-prod.js @@ -3,7 +3,9 @@ export { DATETIME_FMT, dateStringNow, datetimeStringNow, + getCourseId, getUserIconUrl, + getUserId, splitmix32, } from "./utils-common.ts"; @@ -31,16 +33,6 @@ export function getName() { .textContent; } -export function getUserId() { - // M is exported by Moodle - return String(M.cfg.userId); -} - -export function getCourseId() { - // M is exported by Moodle - return String(M.cfg.courseId); -} - export async function getActivityUrl(name) { const courseUrl = `https://lernplattform.bycs.de/course/view.php?id=${getCourseId()}`; const courseRes = await fetch(courseUrl); |
