const database = require('./../database'); class Team { constructor(id, name, sportID) { this.id = id; this.name = name; this.sportID = sportID; } } async function add(name, sportID) { const query = `INSERT INTO scores.teams(team_name, sport_id) VALUES($1, $2) RETURNING team_id;`; const id = (await database.executeQuery(query, [name, sportID]))[0][0]; return new Team(id, name); } async function rename(id, name) { const query = `UPDATE scores.teams SET team_name = $2 WHERE team_id = $1;`; await database.executeQuery(query, [id, name]); return new Team(id, name); } async function remove(id) { const query = `DELETE FROM scores.teams WHERE team_id = $1 RETURNING team_name;`; const name = (await database.executeQuery(query, [id]))[0][0]; 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; } async function getFromID(id) { const query = `SELECT team_name, sport_id FROM scores.teams WHERE team_id = $1;`; const row = (await database.executeQuery(query, [id]))[0]; return new Team(id, row[0], row[1]); } exports.add = add; exports.rename = rename; exports.remove = remove; exports.retrieve = retrieve; exports.getFromID = getFromID;