This repository has been archived on 2024-04-05. You can view files and clone it, but cannot push or open issues/pull-requests.
score-tracker/database/scores/teams.js

83 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-11-21 04:35:56 +00:00
const database = require('./../database');
class Team {
constructor(id, name, sportID) {
2021-11-21 04:35:56 +00:00
this.id = id;
this.name = name;
this.sportID = sportID;
2021-11-21 04:35:56 +00:00
}
}
async function add(name, sportID) {
const query = `INSERT INTO scores.teams(team_name, sport_id)
2021-11-21 04:35:56 +00:00
VALUES($1, $2)
RETURNING team_id;`;
const id = (await database.executeQuery(query, [name, sportID]))[0][0];
return new Team(id, name);
2021-11-21 04:38:08 +00:00
}
async function rename(id, name) {
const query = `UPDATE scores.teams
2021-11-21 04:38:08 +00:00
SET team_name = $2
WHERE team_id = $1;`;
await database.executeQuery(query, [id, name]);
return new Team(id, name);
2021-11-21 04:39:30 +00:00
}
async function remove(id) {
const query = `DELETE FROM scores.teams
2021-11-21 04:39:30 +00:00
WHERE team_id = $1
RETURNING team_name;`;
const name = (await database.executeQuery(query, [id]))[0][0];
2021-11-21 04:39:30 +00:00
return new Team(id, name);
}
async function retrieve(sportID = undefined) {
let table;
if(sportID) {
const query = `SELECT team_id, team_name, sport_id
FROM scores.teams
WHERE sport_id = $1
ORDER BY team_name;`;
table = await database.executeQuery(query, [sportID]);
}
else {
const query = `SELECT team_id, team_name, sport_id
FROM scores.teams
ORDER BY
sport_id,
team_name;`;
table = await database.executeQuery(query);
}
const teamsList = [];
table.forEach((row) => {
teamsList.push(new Team(row[0], row[1], row[2]));
});
return teamsList;
2021-11-21 04:47:15 +00:00
}
async function getFromID(id) {
2021-11-23 06:45:24 +00:00
const query = `SELECT team_name, sport_id
FROM scores.teams
WHERE team_id = $1;`;
2021-11-23 06:45:24 +00:00
const row = (await database.executeQuery(query, [id]))[0];
return new Team(id, row[0], row[1]);
}
2021-11-21 04:47:15 +00:00
exports.add = add;
2021-11-21 04:47:15 +00:00
exports.rename = rename;
exports.remove = remove;
exports.retrieve = retrieve;
exports.getFromID = getFromID;