added new request handlers

This commit is contained in:
SebasKoedam
2024-05-30 15:23:46 +02:00
parent 562a863595
commit 4bd1419a8b
4 changed files with 3 additions and 4 deletions

View File

@@ -0,0 +1,70 @@
/**
*
* @param {Request} request The incoming request
* @param {Response} response The response to send back
* @param {Express} app Express app instance
* @param {Pool} pool MariaDB pool instance
*/
function handleIncoming(request, response, app, pool)
{
let query = 'SELECT * FROM Exercise WHERE ExerciseID = ?';
let parameters = [];
if (!request.hasOwnProperty('uid') || typeof request.uid !== 'number')
{
query = 'SELECT * FROM Exercise ORDER BY RAND() LIMIT 1';
} else parameters.push(request.uid);
// Acquire database connection
pool.getConnection()
.then(conn => {
conn.query(query, parameters)
.then(rows => {
if (rows.length === 0)
{
response
.status(404)
.send(JSON.stringify({error: 'Exercise not found'}));
}
else
{
// Send back the data in the right format
let converted = rows.map(row => {
return {
name: row.Name,
description: row.Description,
muscleGroup: row.MuscleGroup,
imageUrl: row.ImageURL,
videoUrl: row.VideoURL
};
});
response
.status(200)
.send(JSON.stringify(converted));
}
})
.catch(error => {
console.log(error);
response
.status(500)
.send(JSON.stringify({error: 'Internal server error (Querying)'}));
})
.finally(() => {
conn.end();
});
})
.catch(error => {
console.log(error);
response
.status(500)
.send(JSON.stringify({error: 'Internal server error (Connection)'}));
});
}
// Export the function that registers the incoming request handlers
module.exports = function(app, pool) {
app.post('/', (req, res) => handleIncoming(req, res, app, pool));
};