| | |
| | | const mysql = require("mysql2/promise") |
| | | const dayjs = require("dayjs") |
| | | |
| | | const searchLib = require("./search") |
| | | const {host, port, user, database, password} = require("./../settings").db |
| | |
| | | getUdf, |
| | | |
| | | getMemberRoleForCourse, |
| | | |
| | | setStatus, |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | |
| | | return null |
| | | } |
| | | } |
| | | |
| | | /////// STATUS //////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * Zwei Möglichkeiten: |
| | | * 1. es gibt schon einen Eintrag in ut_lp_marks, dann muss man diesen updaten |
| | | * 2. es gibt noch keinen Eintrag in ut_lp_marks, dann muss erst einer erstellt werden (NEIN! Für neuen TN sind bereits beide Einträge vorhanden, kann also wegfallen) |
| | | * |
| | | * Weiterhin haben wir es mit zwei Tabellen zu tun: |
| | | * - obj_members (passed) |
| | | * - ut_lp_marks (status) |
| | | * |
| | | * UPDATE: Wir nehmen an, dass beide Einträge schon vorhanden sind! |
| | | * |
| | | * @param courseId |
| | | * @param userId |
| | | * @param passed |
| | | * @param status |
| | | * @returns {Promise<{status: string}>} |
| | | */ |
| | | async function setStatus (courseId, userId, passed = null, status = null) { |
| | | const pool = await poolP |
| | | |
| | | // ACHTUNG Transactions funktioneren so nicht, erst mal ohne machen... |
| | | const q = ` |
| | | START TRANSACTION; |
| | | |
| | | UPDATE ${database}.ut_lp_marks ulm |
| | | SET status = ${status} |
| | | WHERE ulm.usr_id = 31793 AND ulm.obj_id = 32212; |
| | | |
| | | UPDATE ${database}.obj_members om |
| | | SET passed = ${passed} |
| | | WHERE om.usr_id = ${userId} AND om.obj_id = ${courseId}; |
| | | |
| | | COMMIT; |
| | | ` |
| | | |
| | | let date = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| | | const q1 = ` |
| | | UPDATE ${database}.ut_lp_marks ulm |
| | | SET status = ${status}, |
| | | status_changed = "${date}" |
| | | WHERE ulm.usr_id = 31793 |
| | | AND ulm.obj_id = 32212; |
| | | ` |
| | | const q2 = ` |
| | | UPDATE ${database}.obj_members om |
| | | SET passed = ${passed} |
| | | WHERE om.usr_id = ${userId} |
| | | AND om.obj_id = ${courseId}; |
| | | ` |
| | | const [results1] = await pool.query(q1) |
| | | const [results2] = await pool.query(q2) |
| | | const {affectedRows: affectedRows1} = results1 |
| | | const {affectedRows: affectedRows2} = results2 |
| | | if (affectedRows1 && affectedRows2) { |
| | | return {status: "ok"} |
| | | } |
| | | else { |
| | | throw { |
| | | status: "error", |
| | | reason: {affectedRows1, affectedRows2} |
| | | } |
| | | } |
| | | } |