REST Service for POPCORN - ILIAS
alex
2025-06-18 a845b328e326fc8c827ca43fafd43e8c39640275
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* Lib for interacting with customized ILIAS php */
 
module.exports = {
   deleteUser,
   deleteAllUsers,
   deleteTeilnahme,
}
 
/////////////////////////////////////////////////////////////////////////
 
const settings = require("../settings")
const {getObjIdFromRefId} = require("./db")
const db = require("./db")
const {url, iliastoken} = settings.ilias
 
/////////////////////////////////////////////////////////////////////////
 
async function deleteUser (obj_id, dry = false) {
   const sp = new URLSearchParams({
      command: "deleteUser",
      obj_id,
      // dry: "1",
      dry: dry ? "1" : "0",
      token: iliastoken,
   })
   let url2 = `${url}?${sp.toString()}`
   const res = await fetch(url2, {method: "DELETE"})
   const data = await res.json()
   // TODO update search index
   return data //
}
 
async function deleteAllUsers () {
   const {data: users} = await db.getUsers(0, 100000)
   const res = {
      command: "deleteAllUsers",
      start: new Date(),
      end: new Date(),
      duration: null,
      count: 0,
      userIds: [],
   }
   for (const user of users) {
      await deleteUser(user.usr_id)
      res.count += 1
      res.userIds.push(user.usr_id)
   }
   res.end = new Date()
   res.duration = res.end - res.start
   // TODO update search index
   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
   }
}