Add functionality to return all divisions in database

main
sudoer777 2021-11-22 15:20:59 -07:00
parent 75594a81a6
commit 435748ae76
2 changed files with 25 additions and 10 deletions

View File

@ -6,9 +6,11 @@ const genders = require('./genders');
class Division {
constructor(id, name) {
constructor(id, name, gender, sportID) {
this.id = id;
this.name = name;
this.gender = gender;
this.sportID = sportID;
}
}
@ -29,7 +31,7 @@ async function add(name, gender, sportID) {
return new Division(id, name);
}
async function rename(id, division) {
async function rename(id, name) {
const query = `UPDATE scores.divisions
SET division_name = $2
WHERE division_id = $1;`;
@ -45,17 +47,29 @@ async function remove(id) {
return new Division(id, name);
}
async function retrieveBySportAndGender(sportID, gender) {
const query = `SELECT *
async function retrieve(sportID = undefined, gender = undefined) {
let table;
if(sportID && gender) {
const query = `SELECT division_id, division_name, gender, sport_id
FROM scores.divisions
WHERE sport_id = $1 AND gender = $2
ORDER BY division_name;`;
const genderID = getGenderID(gender);
const table = await database.executeQuery(query, [sportID, genderID]);
table = await database.executeQuery(query, [sportID, genderID]);
}
else {
const query = `SELECT division_id, division_name, gender, sport_id
FROM scores.divisions
ORDER BY division_name,
gender;`;
table = await database.executeQuery(query);
}
const divisionsList = [];
table.forEach((row) => {
divisionsList.push(new Division(row[0], row[1]));
let gender = (row[2] == "F") ? genders.FEMALE : genders.MALE;
divisionsList.push(new Division(row[0], row[1], gender, row[3]));
});
return divisionsList;
}
@ -67,4 +81,4 @@ async function retrieveBySportAndGender(sportID, gender) {
exports.add = add;
exports.rename = rename;
exports.remove = remove;
exports.retrieveBySportAndGender = retrieveBySportAndGender;
exports.retrieve = retrieve;

View File

@ -24,9 +24,10 @@ router.get('/genders', function(req, res, next) {
})
router.get('/divisions', function(req, res, next) {
const gender = req.query.gender == 'female' ? genders.FEMALE : genders.MALE;
let gender;
if(req.query.gender) gender = (req.query.gender == 'female' ? genders.FEMALE : genders.MALE);
divisions.retrieveBySportAndGender(req.query.sport, gender)
divisions.retrieve(req.query.sport, gender)
.then(data => res.json(data));
})