sba-website/src/services/transactionsService.ts
2023-08-10 19:34:27 -04:00

42 lines
1.2 KiB
TypeScript

import type { Team } from './apiResponseTypes'
import type { Player } from './playersService'
import { SITE_URL } from './utilities'
export interface Transaction {
id: number
week: number
player: Player
oldteam: Team
newteam: Team
season: number
moveid: number
cancelled: boolean
frozen: boolean
}
export async function fetchTransactionsByTeamAndWeek(seasonNumber: number, teamAbbreviation: string, weekNumber: number): Promise<Transaction[]> {
const response = await fetch(`${SITE_URL}/api/v3/transactions?season=${seasonNumber}&team_abbrev=${teamAbbreviation}&week_start=${weekNumber}`)
const transactionsResponse: {
count: number
transactions: Transaction[]
} = await response.json()
return transactionsResponse.transactions
}
export async function fetchPlayerByName(seasonNumber: number, playerName: string): Promise<Player> {
const response = await fetch(`${SITE_URL}/api/v3/players?season=${seasonNumber}&name=${playerName}`)
const playersResponse: {
count: number
players: Player[]
} = await response.json()
if (playersResponse.count !== 1) {
throw new Error('playersServices.fetchPlayerByName - Expected one player, return contained none or many')
}
return playersResponse.players[0]
}