REST Service for POPCORN - ILIAS
alex
8 hours ago a82027a51a3056e574b9c6c8941a7a16f5841126
lib/libIlias.js
@@ -5,13 +5,18 @@
const db = require("./db")
const {url, iliastoken} = settings.ilias
const search = require("./search")
const log = require("../logger")
/////////////////////////////////////////////////////////////////////////
module.exports = {
   ping,
   getUser,
   importIliasUser,
   createKurs,
   anmelden,
   abmelden,
@@ -24,6 +29,17 @@
}
/////////////////////////////////////////////////////////////////////////
async function ping() {
   const sp = new URLSearchParams({
      command: "ping",
      token: iliastoken,
   })
   let url2 = `${url}?${sp.toString()}`
   log.debug("pinging url", url2)
   const res = await fetch(url2, {method: "GET"})
   return await res.json() //
}
/////// GET USER ////////////////////////////////////////////////////////////////
async function getUser (usr_id) {
@@ -70,13 +86,16 @@
   const udfDef = await db.getUdf()
   const udfMap = _.keyBy(udfDef, "field_name")
   user.udf = _.mapKeys(user.udf, function (value, key) {
   // do not mutate the caller's user object
   const user2 = _.cloneDeep(user)
   user2.udf = _.mapKeys(user.udf, function (value, key) {
      return udfMap[key].field_id
   })
   const res = await fetch(url2, {
      method: "POST",
      body: JSON.stringify(user)
      body: JSON.stringify(user2)
   })
   const text = await res.text()
   try {
@@ -147,6 +166,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) {
@@ -158,7 +193,7 @@
      token: iliastoken,
   })
   let url2 = `${url}?${sp.toString()}`
   console.log(url2)
   log.debug(url2)
   const res = await fetch(url2, {method: "POST"})
   return await res.json()
}
@@ -171,7 +206,9 @@
      token: iliastoken,
   })
   let url2 = `${url}?${sp.toString()}`
   console.log(url2)
   log.debug(url2)
   const res = await fetch(url2, {method: "DELETE"})
   return await res.json()
}