2 files added
3 files modified
| | |
| | | const {refId, usrId} = req.params |
| | | if (!refId || !usrId) throw {status: "error", msg: "refId and usrId requried"} |
| | | try { |
| | | let data = await libIlias.deleteTeilnahme(refId, usrId) |
| | | const {obj_id: course_id} = await db.getObjIdFromRefId(refId) |
| | | let data = await libIlias.abmelden(usrId, course_id) |
| | | // let data = await libIlias.deleteTeilnahme(refId, usrId) |
| | | if (!data) throw {statusCode: 404, message: "Teilnahme not found"} |
| | | return res.send(data) |
| | | } catch (ex) { |
| | |
| | | getUser, |
| | | |
| | | importIliasUser, |
| | | |
| | | anmelden, |
| | | abmelden, |
| | | |
| | | deleteUser, |
| | | deleteAllUsers, |
| | | deleteTeilnahme, |
| | | // deleteTeilnahme, |
| | | |
| | | |
| | | } |
| | |
| | | return res |
| | | } |
| | | |
| | | async function deleteTeilnahme (ref_id, usr_id, dry = false) { |
| | | const {obj_id} = await getObjIdFromRefId(ref_id) |
| | | const sp = new URLSearchParams({ |
| | | command: "deleteTeilnahme", |
| | | obj_id, |
| | | usr_id, |
| | | dry: dry ? "1" : "0", |
| | | token: iliastoken, |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | console.log("libIlias.deleteTeilnahme >>>", url2) |
| | | let res |
| | | try { |
| | | res = await fetch(url2, {method: "DELETE"}) |
| | | return await res.json() |
| | | } catch (ex) { |
| | | console.error(ex) |
| | | throw ex |
| | | } |
| | | } |
| | | // async function deleteTeilnahme (ref_id, usr_id, dry = false) { |
| | | // const {obj_id} = await getObjIdFromRefId(ref_id) |
| | | // const sp = new URLSearchParams({ |
| | | // command: "deleteTeilnahme", |
| | | // course_id: obj_id, |
| | | // usr_id, |
| | | // dry: dry ? "1" : "0", |
| | | // token: iliastoken, |
| | | // }) |
| | | // let url2 = `${url}?${sp.toString()}` |
| | | // console.log("libIlias.deleteTeilnahme >>>", url2) |
| | | // let res |
| | | // try { |
| | | // res = await fetch(url2, {method: "DELETE"}) |
| | | // return await res.json() |
| | | // } catch (ex) { |
| | | // console.error(ex) |
| | | // throw ex |
| | | // } |
| | | // } |
| | | |
| | | /////// Anmelden //////////////////////////////////////////////////////////////// |
| | | /////// Anmelden / Abmelden //////////////////////////////////////////////////////////////// |
| | | |
| | | async function anmelden (usr_id, course_id) { |
| | | // const role = await db.getMemberRoleForCourse(course_id) // nein es wird relative id gebraucht, siehe php |
| | |
| | | const res = await fetch(url2, {method: "POST"}) |
| | | return await res.json() |
| | | } |
| | | |
| | | async function abmelden (usr_id, course_id) { |
| | | const sp = new URLSearchParams({ |
| | | command: "abmelden", |
| | | usr_id, |
| | | course_id, |
| | | token: iliastoken, |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | console.log(url2) |
| | | const res = await fetch(url2, {method: "DELETE"}) |
| | | return await res.json() |
| | | } |
| | |
| | | $res["status"] = "ok"; |
| | | break; |
| | | } |
| | | case "deleteTeilnahme": |
| | | // case "deleteTeilnahme": |
| | | case "abmelden": |
| | | if ($method == "DELETE") { |
| | | $usr_id = (int) $_GET["usr_id"]; |
| | | $res["usr_id"] = $usr_id; |
| | | $res["msg"] = deleteTeilnahme($obj_id, $usr_id, $dry); |
| | | $res["usr_id"] = (int) $usr_id; |
| | | $course_id = (int) $_GET["course_id"]; |
| | | $res["msg"] = abmelden($usr_id, $course_id); |
| | | $res["status"] = "ok"; |
| | | break; |
| | | } |
| | |
| | | return $membersObject->add($usr_id, $role); |
| | | } |
| | | |
| | | function abmelden($usr_id, $course_id) { |
| | | $course = ilObjectFactory::getInstanceByObjId($course_id); |
| | | $membersObject = $course->getMembersObject(); |
| | | return $membersObject->delete($usr_id); |
| | | } |
| | | |
| | | function deleteUser($obj_id, $dry) |
| | | { |
| | | $usr = ilObjectFactory::getInstanceByObjId($obj_id); |
| | |
| | | } |
| | | } |
| | | |
| | | function deleteTeilnahme($obj_id, $usr_id, $dry) { |
| | | # beim Löschen durch den Kurs wird zwar die Teilnahme gelöscht, aber nicht die Rollenzugehörigkeit |
| | | // $course = ilObjectFactory::getInstanceByObjId($obj_id); |
| | | |
| | | $parti = ilCourseParticipant::_getInstanceByObjId($obj_id, $usr_id); ## Achtung die usr_id hier ist Admin id?? |
| | | #return "parti.isParticipant() = {$parti->isParticipant()}"; |
| | | |
| | | $msg = "deleted user({$usr_id}) teilnahme for course '{$course->getTitle()}' ({$obj_id})"; |
| | | if ($dry == "0") { |
| | | #$course->_deleteUser($usr_id); |
| | | #$course->deleteUser($usr_id); ## undefined |
| | | $parti->delete($usr_id); |
| | | return $msg; |
| | | } else { |
| | | $msg = "DRY:: ".$msg; |
| | | return $msg; |
| | | } |
| | | } |
| | | // ACHTUNG Funktion "abmelden" benutzen |
| | | // function deleteTeilnahme($obj_id, $usr_id, $dry) { |
| | | // # beim Löschen durch den Kurs wird zwar die Teilnahme gelöscht, aber nicht die Rollenzugehörigkeit |
| | | // // $course = ilObjectFactory::getInstanceByObjId($obj_id); |
| | | // |
| | | // $parti = ilCourseParticipant::_getInstanceByObjId($obj_id, $usr_id); ## Achtung die usr_id hier ist Admin id?? |
| | | // #return "parti.isParticipant() = {$parti->isParticipant()}"; |
| | | // |
| | | // $msg = "deleted user({$usr_id}) teilnahme for course '{$course->getTitle()}' ({$obj_id})"; |
| | | // if ($dry == "0") { |
| | | // #$course->_deleteUser($usr_id); |
| | | // #$course->deleteUser($usr_id); ## undefined |
| | | // $parti->delete($usr_id); |
| | | // return $msg; |
| | | // } else { |
| | | // $msg = "DRY:: ".$msg; |
| | | // return $msg; |
| | | // } |
| | | // } |
| | | |
| | | ?> |
| New file |
| | |
| | | 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 |
| | | const user = testData.user |
| | | |
| | | let kursId = 31938 |
| | | let userId = 31954 |
| | | |
| | | beforeEach(async function () { |
| | | // TODO add kurs |
| | | // const res = await libIlias.importIliasUser(user) |
| | | // userId = res.usr_id |
| | | }) |
| | | |
| | | afterEach(async function () { |
| | | // await libIlias.deleteUser(userId) |
| | | // TODO delete kurs |
| | | }) |
| | | |
| | | it("should import a new user to ILIAS", async function () { |
| | | console.log("++abmelden", userId, kursId) |
| | | const res = await libIlias.abmelden(userId, kursId) |
| | | console.dir(res, {depth: null}) |
| | | expect(res).to.have.property("status").and.to.equal("ok") |
| | | expect(res.command).to.equal("abmelden") |
| | | expect(res.method).to.equal("DELETE") |
| | | }) |
| | | |
| | | }) |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| New file |
| | |
| | | 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 |
| | | const user = testData.user |
| | | |
| | | let kursId = 31938 |
| | | let userId = 31954 |
| | | |
| | | beforeEach(async function () { |
| | | // TODO add kurs |
| | | // const res = await libIlias.importIliasUser(user) |
| | | // userId = res.usr_id |
| | | }) |
| | | |
| | | afterEach(async function () { |
| | | // await libIlias.deleteUser(userId) |
| | | // TODO delete kurs |
| | | }) |
| | | |
| | | it("should import a new user to ILIAS", async function () { |
| | | console.log("++anmelden", userId, kursId) |
| | | const res = await libIlias.anmelden(userId, kursId) |
| | | 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") |
| | | }) |
| | | |
| | | }) |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |