REST Service for POPCORN - ILIAS
alex
2025-11-17 5fa36d9ea426f6f3dffc31cce8a55821e9ead5bf
lib/libIlias.js
@@ -9,19 +9,36 @@
/////////////////////////////////////////////////////////////////////////
module.exports = {
   ping,
   getUser,
   importIliasUser,
   createKurs,
   anmelden,
   abmelden,
   deleteUser,
   deleteAllUsers,
   deleteTeilnahme,
   // deleteTeilnahme,
}
/////////////////////////////////////////////////////////////////////////
async function ping() {
   const sp = new URLSearchParams({
      command: "ping",
      token: iliastoken,
   })
   let url2 = `${url}?${sp.toString()}`
   console.log("pinging url", url2)
   const res = await fetch(url2, {method: "GET"})
   return await res.json() //
}
/////// GET USER ////////////////////////////////////////////////////////////////
async function getUser (usr_id) {
@@ -124,28 +141,44 @@
   return res
}
async function deleteTeilnahme (ref_id, usr_id, dry = false) {
   const {obj_id} = await getObjIdFromRefId(ref_id)
// 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
//    }
// }
/////// KURS ////////////////////////////////////////////////////////////////
async function createKurs(kurs) {
   const sp = new URLSearchParams({
      command: "deleteTeilnahme",
      obj_id,
      usr_id,
      dry: dry ? "1" : "0",
      command: "createKurs",
      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
   }
   const res = await fetch(url2, {
      method: "POST",
      body: JSON.stringify(kurs),
   })
   return await res.json()
}
/////// 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
@@ -160,3 +193,18 @@
   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()
}