42 lines
1.2 KiB
TypeScript
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]
|
|
}
|