| | |
| | | const mysql = require("mysql2/promise") |
| | | const dayjs = require("dayjs") |
| | | |
| | | const log = require("../logger") |
| | | const searchLib = require("./search") |
| | | const {host, port, user, database, password} = require("./../settings").db |
| | | |
| | |
| | | } |
| | | |
| | | async function getUsers (offset = 0, limit = 10, search = null) { |
| | | console.log("++++++++++ get users", offset, limit, search) |
| | | log.info("++++++++++ get users", offset, limit, search) |
| | | limit = Number(limit) || 10 |
| | | offset = Number(offset) || 0 |
| | | // TODO check args for SQL Injection |
| | |
| | | |
| | | try { |
| | | let userSearchQuery = await getUserSearchQuery(offset, limit, search) |
| | | // console.log(userSearchQuery) |
| | | // log.info(userSearchQuery) |
| | | const [results, fields] = await pool.query(userSearchQuery) |
| | | // console.log(results, fields) |
| | | const count = await getUserCount(offset, limit, search) |
| | | return { |
| | | total: count, |
| | |
| | | |
| | | async function getKurse () { |
| | | const pool = await poolP |
| | | const q = `SELECT or2.ref_id, or2.obj_id, od.title, od.description, od.type |
| | | const q = `SELECT or2.ref_id, or2.obj_id, od.title, od.description, od.type, od.offline |
| | | FROM ${database}.object_reference or2 |
| | | INNER JOIN ${database}.object_data od ON od.obj_id = or2.obj_id |
| | | WHERE od.type = 'crs' |
| | |
| | | |
| | | async function getKurs (ref_id) { |
| | | const pool = await poolP |
| | | const q = `SELECT or2.ref_id, or2.obj_id, od.title, od.description, od.type, od.create_date |
| | | const q = `SELECT or2.ref_id, or2.obj_id, od.title, od.description, od.type, od.create_date, od.offline |
| | | FROM ${database}.object_reference or2 |
| | | INNER JOIN ${database}.object_data od ON od.obj_id = or2.obj_id |
| | | WHERE or2.ref_id = '${ref_id}' |
| | | AND or2.deleted IS NULL |
| | | ` |
| | | let [results] = await pool.query(q) |
| | | results = results.length ? results[0] : undefined |
| | |
| | | INNER JOIN ${database}.usr_data ud ON ud.usr_id = om.usr_id |
| | | LEFT JOIN ${database}.ut_lp_marks ulm ON ulm.obj_id = or2.obj_id AND ud.usr_id = ulm.usr_id |
| | | WHERE (or2.ref_id = ${ref_id} OR parent_id = ${ref_id}) |
| | | AND or2.deleted IS NULL |
| | | ORDER BY usr_id |
| | | ` |
| | | // console.log(q) |
| | | // log.info(q) |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | |
| | | AND om.usr_id = ${usr_id} |
| | | ORDER BY usr_id |
| | | ` |
| | | // console.log(q) |
| | | // log.info(q) |
| | | const [results] = await pool.query(q) |
| | | return results[0] |
| | | } |
| | |
| | | WHERE om.usr_id = ${usr_id} |
| | | AND om.member = 1 |
| | | ` |
| | | console.log(q) |
| | | log.info(q) |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | |
| | | * |
| | | * @param courseId |
| | | * @param userId |
| | | * @param passed |
| | | * @param status |
| | | * @param {Number} passed |
| | | * @param {Number} status |
| | | * @returns {Promise<{status: string}>} |
| | | */ |
| | | async function setStatus (courseId, userId, passed = null, status = null) { |
| | | const pool = await poolP |
| | | log.info(`------------setStatus----- courseId=${courseId} userId=${userId} passed=${passed} status=${status}`) |
| | | passed = isNaN(Number(passed)) ? passed : Number(passed) |
| | | status = isNaN(Number(status)) ? status : Number(status) |
| | | |
| | | // ACHTUNG Transactions funktioneren so nicht, erst mal ohne machen... |
| | | const q = ` |