| | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | module.exports = { |
| | | getUser, |
| | | |
| | | importIliasUser, |
| | | |
| | | anmelden, |
| | | abmelden, |
| | | |
| | | deleteUser, |
| | | deleteAllUsers, |
| | | deleteTeilnahme, |
| | | // deleteTeilnahme, |
| | | |
| | | |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | /////// GET USER //////////////////////////////////////////////////////////////// |
| | | async function getUser (usr_id) { |
| | | const sp = new URLSearchParams({ |
| | | command: "getUser", |
| | | usr_id, |
| | | token: iliastoken, |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | const res = await fetch(url2, {method: "GET"}) |
| | | return await res.json() // |
| | | } |
| | | |
| | | /////// USER IMPORT //////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * Format in POPCORN für SOAP; ausprobieren ob das hier auch funktioniert, v.a. die user-defined-fields |
| | | * { |
| | | * Action: "Insert", |
| | | * login: formatSapNr(dbMa.sapNr), |
| | | * password: passGen(12), |
| | | * firstname: dbMa.vorname, |
| | | * lastname: dbMa.nachname, |
| | | * email: email, |
| | | * gender: mapSex[dbMa.geschlecht], |
| | | * // GS-1894: Azubis wird der Ausbildungsberuf auch als Abteilung angezeigt |
| | | * department: getDepartment(dbMa), |
| | | * institution: dbMa.markt.markt, |
| | | * roleIdGlobal: 4, |
| | | * userDefinedField: [ |
| | | * { |
| | | * name: "Markt", |
| | | * value: dbMa.markt.markt, |
| | | * }, |
| | | * { |
| | | * name: "Marktnummer", |
| | | * value: dbMa.markt.nr, |
| | | * }, |
| | | * { |
| | | * name: "Personalnummer", |
| | | * value: formatSapNr(dbMa.sapNr), |
| | | * }, |
| | | * ], |
| | | * } |
| | | * const user = { |
| | | * login: "123456789", |
| | | * passwd: "123456789", |
| | | * passwd_type: "plain", |
| | | * firstname: "Adolfo", |
| | | * lastname: "de la Cruz", |
| | | * email: "alex@gorillaeis.com", |
| | | * gender: "m", |
| | | * department: "Bananenpflücker", |
| | | * institution: "Globus Budapest", |
| | | * role: 4, // assigned global role id |
| | | * udf: { |
| | | * "Markt": "Markt UDF 2", |
| | | * "Marktnummer": "Marktnummer UDF 2", |
| | | * "Personalnummer": "Personal UDF 2", |
| | | * }, |
| | | * } |
| | | * @param user |
| | | * @returns {Promise<any>} |
| | | */ |
| | |
| | | token: iliastoken, |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | console.log(url2) |
| | | |
| | | console.log(user) |
| | | const udfDef = await db.getUdf() |
| | | const udfMap = _.keyBy(udfDef, "field_name") |
| | | user.udf = _.mapKeys(user.udf, function (value, key) { |
| | | return udfMap[key].field_id |
| | | }) |
| | | console.log(user) |
| | | // return "jo" |
| | | |
| | | const res = await fetch(url2, { |
| | | method: "POST", |
| | | body: JSON.stringify(user) |
| | | }) |
| | | |
| | | |
| | | const text = await res.text() |
| | | try { |
| | | return JSON.parse(text) |
| | |
| | | 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 |
| | | // } |
| | | // } |
| | | |
| | | /////// 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 sp = new URLSearchParams({ |
| | | command: "deleteTeilnahme", |
| | | obj_id, |
| | | command: "anmelden", |
| | | usr_id, |
| | | dry: dry ? "1" : "0", |
| | | course_id, |
| | | 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 |
| | | } |
| | | console.log(url2) |
| | | 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() |
| | | } |
| | | |
| | | |