From dd1f381e57312be59e15f8792a06f3f0cd922d76 Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Sat, 12 Jul 2025 13:19:19 +0000
Subject: [PATCH] adding createKurs
---
test/testAbmelden.js | 15 +++++--
lib/libIlias.js | 18 +++++++++
php/globus-ilias-rest/api.php | 20 ++++++++++
test/data.js | 10 +++++
test/testCreateKurs.js | 33 ++++++++++++++++
5 files changed, 91 insertions(+), 5 deletions(-)
diff --git a/lib/libIlias.js b/lib/libIlias.js
index bed78e0..4d8e7c2 100644
--- a/lib/libIlias.js
+++ b/lib/libIlias.js
@@ -13,6 +13,8 @@
importIliasUser,
+ createKurs,
+
anmelden,
abmelden,
@@ -147,6 +149,22 @@
// }
// }
+/////// KURS ////////////////////////////////////////////////////////////////
+
+async function createKurs(kurs) {
+ const sp = new URLSearchParams({
+ command: "createKurs",
+ token: iliastoken,
+ })
+ let url2 = `${url}?${sp.toString()}`
+ const res = await fetch(url2, {
+ method: "POST",
+ body: JSON.stringify(kurs),
+ })
+ return await res.json()
+}
+
+
/////// Anmelden / Abmelden ////////////////////////////////////////////////////////////////
async function anmelden (usr_id, course_id) {
diff --git a/php/globus-ilias-rest/api.php b/php/globus-ilias-rest/api.php
index 696f431..f79ea9d 100644
--- a/php/globus-ilias-rest/api.php
+++ b/php/globus-ilias-rest/api.php
@@ -74,6 +74,16 @@
$res["status"] = "ok";
break;
}
+ /////// Kurs ////////////////////////////////////////////////////////////////
+ case "createKurs":
+ if ($method == "POST") {
+ $body = file_get_contents('php://input');
+ $data = json_decode($body, true);
+ $res["ref_id"] = createKurs($data);
+ $res["status"] = "ok";
+ $res["msg"] = "User Import OK";
+ break;
+ }
//// Anmelden / Abmelden //////////////////////////////////////////////////////////
case "anmelden": // params: usr_id, course_id, role
if ($method == "POST") {
@@ -146,6 +156,15 @@
return $usr_id;
}
+function createKurs($data) {
+// TODO ätzend kompliziert
+// ilSoapCourseAdministration->addCourse()
+// beispile wie Kurs erstellt wird in : ilECSCourseCreationHandler->createParallelCourse
+// $course = new ilObjCourse();
+// $course->create();
+ throw new Exception("not implemented");
+}
+
// ACHTUNG course_id muss obj_id sein!
// die Rolle muss aus dem Kurs gelesen werden
function anmelden($usr_id, $course_id) {
@@ -160,6 +179,7 @@
$course = ilObjectFactory::getInstanceByObjId($course_id);
$membersObject = $course->getMembersObject();
return $membersObject->delete($usr_id);
+ // TODO auch aus Rolle löschen - wird eigentlich gemacht in ilCourseParticipants->delete()
}
function deleteUser($obj_id, $dry)
diff --git a/test/data.js b/test/data.js
index a1989ed..0861959 100644
--- a/test/data.js
+++ b/test/data.js
@@ -23,7 +23,17 @@
},
}
+const kurs = {
+ "title": "Globus-ILIAS-Rest Testkurs",
+ "description": "ein Kurs zum Testen",
+ "online": false,
+ "public": false,
+ "maxTn": 20,
+ "registerNo": true
+}
+
module.exports = {
user,
+ kurs,
}
diff --git a/test/testAbmelden.js b/test/testAbmelden.js
index c1d56c8..f8289f8 100644
--- a/test/testAbmelden.js
+++ b/test/testAbmelden.js
@@ -12,13 +12,14 @@
const kurs = testData.kurs // TODO
const user = testData.user
- let kursId = 31938
- let userId = 31954
+ let kursId = null
+ let userId = null
beforeEach(async function () {
- // TODO add kurs
- // const res = await libIlias.importIliasUser(user)
- // userId = res.usr_id
+ // const {usr_id:userId} = await libIlias.importIliasUser(user)
+ const userRes = await libIlias.importIliasUser(user)
+ const kursRes = await libIlias.
+ console.log(data)
})
afterEach(async function () {
@@ -27,6 +28,10 @@
})
it("should import a new user to ILIAS", async function () {
+ console.log("!111")
+ console.error("finish test")
+ return
+
console.log("++abmelden", userId, kursId)
const res = await libIlias.abmelden(userId, kursId)
console.dir(res, {depth: null})
diff --git a/test/testCreateKurs.js b/test/testCreateKurs.js
new file mode 100644
index 0000000..755f244
--- /dev/null
+++ b/test/testCreateKurs.js
@@ -0,0 +1,33 @@
+const expect = require("chai").expect
+
+const settings = require("../settings")
+const libIlias = require("../lib/libIlias")
+const db = require("../lib/db")
+const testData = require("./data")
+
+/////////////////////////////////////////////////////////////////////////
+
+describe("the function anmelden", function () {
+
+ const kurs = testData.kurs // TODO
+ let kursId = 31938
+
+ beforeEach(async function () {
+ })
+
+ afterEach(async function () {
+ })
+
+ it("should create a new Kurs in ILIAS", async function () {
+ console.log("++createKurs", kurs)
+ const res = await libIlias.createKurs(kurs)
+ console.dir(res, {depth: null})
+ // expect(res).to.have.property("status").and.to.equal("ok")
+ // expect(res.command).to.equal("anmelden")
+ // expect(res.method).to.equal("POST")
+ })
+
+})
+
+/////////////////////////////////////////////////////////////////////////
+
--
Gitblit v1.8.0