| | |
| | | getKursTeilnehmer, |
| | | getKursTeilnehmerCount, |
| | | |
| | | getUdf, |
| | | |
| | | getMemberRoleForCourse, |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | function getUserSearchQuery (offset, limit, search) { |
| | | async function getUserSearchQuery (offset, limit, search) { |
| | | const sel = `usr_id, login, firstname, lastname, gender, email, institution, street, city, zipcode, country, department, active` |
| | | if (!search || search === '') { |
| | | return `SELECT ${sel} |
| | |
| | | ` |
| | | } |
| | | else { |
| | | const ids = searchLib.search(search) |
| | | const ids = await searchLib.search(search) |
| | | if (!ids.length) { |
| | | throw "nothing found" |
| | | return getUserSearchQuery(offset, limit) |
| | | return await getUserSearchQuery(offset, limit) |
| | | } // nothing found |
| | | return `SELECT ${sel} |
| | | FROM ${database}.usr_data AS ud |
| | |
| | | const pool = await poolP |
| | | |
| | | try { |
| | | let userSearchQuery = getUserSearchQuery(offset, limit, search) |
| | | let userSearchQuery = await getUserSearchQuery(offset, limit, search) |
| | | // console.log(userSearchQuery) |
| | | const [results, fields] = await pool.query(userSearchQuery) |
| | | const count = await getUserCount(offset, limit, search) |
| | |
| | | async function getUserCount (offset, limit, search) { |
| | | const pool = await poolP |
| | | // const q = getUserSearchQuery(offset, limit, search) |
| | | const q = getUserSearchQuery(0, 1000000, search) // hier darf kein Limit sein, offset=0 |
| | | const q = await getUserSearchQuery(0, 1000000, search) // hier darf kein Limit sein, offset=0 |
| | | const q2 = `SELECT COUNT(*) AS count |
| | | FROM (${q}) AS X` |
| | | const [results, fields] = await pool.query(q2) |
| | |
| | | WHERE (or2.ref_id = ${ref_id} OR parent_id = ${ref_id}) |
| | | ORDER BY usr_id |
| | | ` |
| | | console.log(q) |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | | |
| | | /////// UDF //////////////////////////////////////////////////////////////// |
| | | |
| | | async function getUdf () { |
| | | const pool = await poolP |
| | | const q = `SELECT field_id, field_name, field_type |
| | | from ${database}.udf_definition;` |
| | | const [results] = await pool.query(q) |
| | | return results |
| | | } |
| | | |
| | | /////// ROLLEN //////////////////////////////////////////////////////////////// |
| | | |
| | | async function getMemberRoleForCourse (obj_id) { |
| | | const pool = await poolP |
| | | const q = `SELECT obj_id, title, description |
| | | from object_data od |
| | | WHERE type = "role" #AND title LIKE 'il_crs_member_157' |
| | | AND od.description LIKE 'Member%${obj_id}' |
| | | ` |
| | | const [results] = await pool.query(q) |
| | | // darf nur einen Treffer ergeben |
| | | if (results.length) { |
| | | const {obj_id, title, description} = results[0] |
| | | return obj_id |
| | | } |
| | | else { |
| | | return null |
| | | } |
| | | } |