1 files added
2 files modified
| New file |
| | |
| | | const fastify = require('fastify')({ |
| | | logger: true |
| | | }) |
| | | const db = require("./lib/db") |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | fastify.get('/api/users', async function (req, res) { |
| | | const {offset, limit} = req.query |
| | | const users = await db.getUsers(offset, limit) |
| | | return res.send(users) |
| | | }) |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | fastify.listen({ port: 4101 }, function (err, address) { |
| | | if (err) { |
| | | fastify.log.error(err) |
| | | process.exit(1) |
| | | } |
| | | // Server is now listening on ${address} |
| | | }) |
| | |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | async function getUsers (limit = 10, offset = 0) { |
| | | async function getUsers (offset = 0, limit = 10) { |
| | | const sel = `usr_id, login, firstname, lastname, gender, email, institution, street, city, zipcode, country, department, active` |
| | | // TODO user defined fields |
| | | |
| | |
| | | OFFSET ${offset} |
| | | ` |
| | | ) |
| | | return results |
| | | const count = await getUserCount() |
| | | return { |
| | | total: count, |
| | | offset, limit, |
| | | data: results, |
| | | } |
| | | } |
| | | |
| | | async function getUserCount () { |
| | | const pool = await poolP |
| | | const [results, fields] = await pool.query( |
| | | `SELECT COUNT(*) FROM ilias.usr_data AS ud WHERE login REGEXP '^[0-9]+$'` |
| | | `SELECT COUNT(*) |
| | | FROM ilias.usr_data AS ud |
| | | WHERE login REGEXP '^[0-9]+$'` |
| | | ) |
| | | return results[0]["COUNT(*)"] |
| | | } |
| | |
| | | const [results, fields] = await pool.query( |
| | | `SELECT ${sel} |
| | | FROM ilias.usr_data AS ud |
| | | WHERE login = '${login}' AND login REGEXP '^[0-9]+$'` |
| | | WHERE login = '${login}' |
| | | AND login REGEXP '^[0-9]+$'` |
| | | ) |
| | | return results |
| | | } |
| | |
| | | const [results, fields] = await pool.query( |
| | | `SELECT ${sel} |
| | | FROM ilias.usr_data AS ud |
| | | WHERE usr_id = '${userId}' AND login REGEXP '^[0-9]+$'` |
| | | WHERE usr_id = '${userId}' |
| | | AND login REGEXP '^[0-9]+$'` |
| | | ) |
| | | return results |
| | | } |
| | |
| | | const user2 = await db.getUserByUserId(317) |
| | | console.log("user2", user2) |
| | | |
| | | const start = new Date() |
| | | const users = await db.getUsers(10,0) |
| | | const users2 = users.map(({usr_id,login,firstname,lastname,email,institution}) => ({usr_id,login,firstname,lastname,institution})) |
| | | console.table(users2) |
| | | console.log(new Date() - start + "ms") |
| | | |
| | | const count = await db.getUserCount() |
| | | console.log("count",count) |