Untitled
unknown
plain_text
2 years ago
2.2 kB
7
Indexable
import Matches from '../database/models/Matches.model';
import Teams from '../database/models/Teams.model';
const getAllMatches = async () => {
  const matches = await Matches.findAll({
    where: { inProgress: false },
  });
  return matches;
};
const calculateTotalPoints = (homeTeamGoals: number, awayTeamGoals: number) => {
  if (homeTeamGoals > awayTeamGoals) return 3;
  if (homeTeamGoals === awayTeamGoals) return 1;
  return 0;
};
const calculateTotalGames = (homeTeamGoals: number, awayTeamGoals: number) => {
  if (homeTeamGoals > awayTeamGoals) return 1;
  if (homeTeamGoals === awayTeamGoals) return 1;
  return 0;
};
const calculateTotalVictories = (homeTeamGoals: number, awayTeamGoals: number) => {
  if (homeTeamGoals > awayTeamGoals) return 1;
  return 0;
};
const calculateTotalDraws = (homeTeamGoals: number, awayTeamGoals: number) => {
  if (homeTeamGoals === awayTeamGoals) return 1;
  return 0;
};
const calculateTotalLosses = (homeTeamGoals: number, awayTeamGoals: number) => {
  if (homeTeamGoals < awayTeamGoals) return 1;
  return 0;
};
const calculateGoalsFavor = (homeTeamGoals: number, _awayTeamGoals: number) => homeTeamGoals;
const calculateGoalsOwn = (_homeTeamGoals: number, awayTeamGoals: number) => awayTeamGoals;
const getHomeLeaderboard = async () => {
  const matches = await getAllMatches();
  const teams = await Teams.findAll();
  const newMatches = matches.map((match) => {
    const homeTeam = teams.find((team) => team.id === match.homeTeamId);
    return {
      name: homeTeam?.teamName,
      totalPoints: calculateTotalPoints(match.homeTeamGoals, match.awayTeamGoals),
      totalGames: calculateTotalGames(match.homeTeamGoals, match.awayTeamGoals),
      totalVictories: calculateTotalVictories(match.homeTeamGoals, match.awayTeamGoals),
      totalDraws: calculateTotalDraws(match.homeTeamGoals, match.awayTeamGoals),
      totalLosses: calculateTotalLosses(match.homeTeamGoals, match.awayTeamGoals),
      goalsFavor: calculateGoalsFavor(match.homeTeamGoals, match.awayTeamGoals),
      goalsOwn: calculateGoalsOwn(match.homeTeamGoals, match.awayTeamGoals),
    };
  });
  return newMatches;
};
export default { getHomeLeaderboard };
Editor is loading...
Leave a Comment