2 files added
4 files modified
| New file |
| | |
| | | <component name="ProjectRunConfigurationManager"> |
| | | <configuration default="false" name="the function deleteTeilnahme.should delete the Teilnahme of a user" type="mocha-javascript-test-runner" nameIsGenerated="true"> |
| | | <node-interpreter>project</node-interpreter> |
| | | <node-options /> |
| | | <mocha-package>$PROJECT_DIR$/node_modules/mocha</mocha-package> |
| | | <working-directory>$PROJECT_DIR$</working-directory> |
| | | <pass-parent-env>true</pass-parent-env> |
| | | <envs> |
| | | <env name="NODE_ENV" value="dev" /> |
| | | </envs> |
| | | <ui>bdd</ui> |
| | | <extra-mocha-options /> |
| | | <test-kind>TEST</test-kind> |
| | | <test-file>$PROJECT_DIR$/test/testDeleteTeilnahme.js</test-file> |
| | | <test-names> |
| | | <name value="the function deleteTeilnahme" /> |
| | | <name value="should delete the Teilnahme of a user" /> |
| | | </test-names> |
| | | <method v="2" /> |
| | | </configuration> |
| | | </component> |
| | |
| | | return res.code(404).send({status: "error", msg: "not found"}) |
| | | } |
| | | }) |
| | | .get("/api/kurs/teilnehmer/:refId", async function (req, res) { |
| | | .get("/api/kurs/:refId/teilnehmer", async function (req, res) { |
| | | const {refId} = req.params |
| | | let data = await db.getKursTeilnehmer(refId) |
| | | if (data) { |
| | |
| | | return res.code(404).send({status: "error", msg: "not found"}) |
| | | } |
| | | }) |
| | | .get("/api/kurs/teilnehmer/:refId/count", async function (req, res) { |
| | | const {refId} = req.params |
| | | let data = await db.getKursTeilnehmerCount(refId) |
| | | if (data) { |
| | | // .get("/api/kurs/:refId/teilnehmer/count", async function (req, res) { |
| | | // const {refId} = req.params |
| | | // let data = await db.getKursTeilnehmerCount(refId) |
| | | // if (data) { |
| | | // return res.send(data) |
| | | // } |
| | | // else { |
| | | // return res.code(404).send({status: "error", msg: "not found"}) |
| | | // } |
| | | // }) |
| | | |
| | | .delete("/api/kurs/:refId/teilnehmer/:usrId", async function (req, res) { |
| | | const {refId, usrId} = req.params |
| | | if (!refId || !usrId) throw {status: "error", msg: "refId and usrId requried"} |
| | | try { |
| | | let data = await libIlias.deleteTeilnahme(refId, usrId) |
| | | if (!data) throw {statusCode: 404, message: "Teilnahme not found"} |
| | | return res.send(data) |
| | | } |
| | | else { |
| | | return res.code(404).send({status: "error", msg: "not found"}) |
| | | } catch (ex) { |
| | | console.error(ex) |
| | | const msg = ex.msg ?? ex.message ?? ex.toString() |
| | | if (ex.statusCode) { |
| | | return res.code(ex.statusCode).send({status: "error", msg}) |
| | | } |
| | | return res.code(500).send({status: "error", msg}) |
| | | } |
| | | }) |
| | | |
| | |
| | | |
| | | module.exports = { |
| | | deleteUser, |
| | | deleteTeilnahme, |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | const settings = require("../settings") |
| | | const {getObjIdFromRefId} = require("./db") |
| | | const {url} = settings.ilias |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | |
| | | const sp = new URLSearchParams({ |
| | | command: "deleteUser", |
| | | obj_id, |
| | | dry : dry ? "1" : "0", |
| | | dry: dry ? "1" : "0", |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | console.log("libIlias.deleteUser >>>", url2) |
| | | const res = await fetch(url2, {method: "DELETE"}) |
| | | // console.log(res) |
| | | const data = await res.json() |
| | | return data |
| | | return await res.json() |
| | | } |
| | | |
| | | 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", |
| | | }) |
| | | 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 |
| | | } |
| | | } |
| | |
| | | $res["status"] = "ok"; |
| | | break; |
| | | } |
| | | case "deleteTeilnahme": |
| | | if ($method == "DELETE") { |
| | | $usr_id = (int) $_GET["usr_id"]; |
| | | $res["usr_id"] = $usr_id; |
| | | $res["msg"] = deleteTeilnahme($obj_id, $usr_id, $dry); |
| | | $res["status"] = "ok"; |
| | | break; |
| | | } |
| | | default: |
| | | http_response_code(500); |
| | | $res = array("status" => "error", "msg" => "unknown command or method"); |
| | |
| | | } |
| | | } |
| | | |
| | | function deleteTeilnahme($obj_id, $usr_id, $dry) { |
| | | $course = ilObjectFactory::getInstanceByObjId($obj_id); |
| | | #$members = $course->getMembersObject(); # ilCourseParticipants # sackgasse |
| | | $msg = "deleted user({$usr_id}) teilnahme for course '{$course->getTitle()}' ({$obj_id})"; |
| | | #return json_encode($members, JSON_PRETTY_PRINT); |
| | | if ($dry == "0") { |
| | | $course->_deleteUser($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") |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | describe("the function deleteTeilnahme", function () { |
| | | |
| | | it("should delete the Teilnahme of a user", async function () { |
| | | const ref_id = 150 |
| | | const {obj_id} = await db.getObjIdFromRefId(ref_id) // 9915 |
| | | const usr_id = 1446 |
| | | |
| | | |
| | | const res = await libIlias.deleteTeilnahme(ref_id, usr_id, false) |
| | | console.log(res) |
| | | expect(res.method).to.equal("DELETE") |
| | | expect(res.command).to.equal("deleteTeilnahme") |
| | | expect(res.obj_id).to.equal(obj_id) |
| | | expect(res.usr_id).to.equal(usr_id) |
| | | expect(res.status).to.equal("ok") |
| | | }) |
| | | |
| | | }) |
| | |
| | | } |
| | | |
| | | export async function getKursTn (kursId) { |
| | | let resKurs = await fetch(`${apiBase}/kurs/teilnehmer/${kursId}?token=${apiToken.value}`) |
| | | let resKurs = await fetch(`${apiBase}/kurs/${kursId}/teilnehmer?token=${apiToken.value}`) |
| | | return await resKurs.json() |
| | | } |
| | | |