diff --git a/database/scores/divisions.js b/database/scores/divisions.js index a3cebd2..7da86dd 100644 --- a/database/scores/divisions.js +++ b/database/scores/divisions.js @@ -20,6 +20,10 @@ function getGenderID(gender) { return (gender == genders.MALE) ? "M" : "F"; } +function getGenderFromID(genderID) { + return (genderID == "F") ? genders.FEMALE : genders.MALE; +} + async function add(name, gender, sportID) { @@ -69,12 +73,21 @@ async function retrieve(sportID = undefined, gender = undefined) { const divisionsList = []; table.forEach((row) => { - let gender = (row[2] == "F") ? genders.FEMALE : genders.MALE; - divisionsList.push(new Division(row[0], row[1], gender, row[3])); + divisionsList.push(new Division(row[0], row[1], getGenderFromID(row[2]), row[3])); }); return divisionsList; } +async function getFromID(id) { + const query = `SELECT division_id, division_name, gender, sport_id + FROM scores.divisions + WHERE division_id = $1;`; + const row = (await database.executeQuery(query, [id]))[0]; + + + return new Division(id, row[1], getGenderFromID(row[2]), row[3]); +} + @@ -82,4 +95,5 @@ async function retrieve(sportID = undefined, gender = undefined) { exports.add = add; exports.rename = rename; exports.remove = remove; -exports.retrieve = retrieve; \ No newline at end of file +exports.retrieve = retrieve; +exports.getFromID = getFromID; \ No newline at end of file diff --git a/public/scripts/data.js b/public/scripts/data.js index 9866321..8ef7479 100644 --- a/public/scripts/data.js +++ b/public/scripts/data.js @@ -32,6 +32,12 @@ export async function getDivisions(sportID = undefined, gender = undefined) { return divisionsList; } +export async function getDivision(divisionID) { + const response = await fetch(`/data/division?division=${divisionID}`); + const division = await response.json(); + return division; +} + export async function getTeams(sportID = undefined) { let URL = '/data/teams?'; if(sportID) URL += `sport=${+sportID}&`; diff --git a/public/scripts/manage.js b/public/scripts/manage.js index f6bcda6..83920f0 100644 --- a/public/scripts/manage.js +++ b/public/scripts/manage.js @@ -164,6 +164,74 @@ CATEGORIES.push(new Category( } )); +CATEGORIES.push(new Category( + "games", + async function getGames() { + return await Data.getGames(); + }, + async function listGameHeaders() { + const headerRow = document.createElement('tr'); + + const teamsHeader = document.createElement('th'); + teamsHeader.textContent = "Teams"; + headerRow.appendChild(teamsHeader); + + const scoreHeader = document.createElement('th'); + headerRow.appendChild(scoreHeader); + + const sportNameHeader = document.createElement('th'); + sportNameHeader.textContent = "Sport"; + headerRow.appendChild(sportNameHeader); + + const divisionNameHeader = document.createElement('th'); + headerRow.appendChild(divisionNameHeader); + + const divisionGenderHeader = document.createElement('th'); + headerRow.appendChild(divisionGenderHeader); + + const dateHeader = document.createElement('th'); + dateHeader.textContent = "Date"; + headerRow.appendChild(dateHeader); + + itemsListTable.appendChild(headerRow); + }, + function listGame(game, row) { + const teamsCell = document.createElement('td'); + const team1NameSpan = document.createElement('span'); + Data.getTeamName(game.team1ID) + .then(data => team1NameSpan.textContent = data); + teamsCell.appendChild(team1NameSpan); + const team2NameSpan = document.createElement('span'); + Data.getTeamName(game.team2ID) + .then(data => team2NameSpan.textContent = data); + teamsCell.appendChild(team2NameSpan); + row.appendChild(teamsCell); + + const scoresCell = document.createElement('td'); + const team1ScoreSpan = document.createElement('span'); + team1ScoreSpan.textContent = game.team1Score; + scoresCell.appendChild(team1ScoreSpan); + const team2ScoreSpan = document.createElement('span'); + team2ScoreSpan.textContent = game.team2Score; + scoresCell.appendChild(team2ScoreSpan); + row.appendChild(scoresCell); + + const sportCell = document.createElement('td'); + Data.getSportName(team.sportID) + .then(data => sportCell.textContent = data); + row.appendChild(sportCell); + }, + async function addSeason() { + // + }, + async function submitSeason() { + // + }, + async function editSeason() { + + } +)); + async function listItems(category) { diff --git a/routes/data.js b/routes/data.js index 76dd2ac..917b36b 100644 --- a/routes/data.js +++ b/routes/data.js @@ -36,6 +36,11 @@ router.get('/divisions', function(req, res, next) { .then(data => res.json(data)); }) +router.get('/division', function(req, res, next) { + divisions.getFromID(req.query.division) + .then(data => res.json(data)); +}) + router.get('/teams', function(req, res, next) { teams.retrieve(req.query.sport) .then(data => res.json(data));