Files
vyndr/src/services/mlbStatsClient.js
T

65 lines
1.5 KiB
JavaScript

const axios = require('axios');
const MLB_API_BASE = 'https://statsapi.mlb.com/api/v1';
const TIMEOUT = 10000;
async function getPlayerStats(playerId) {
const { data } = await axios.get(`${MLB_API_BASE}/people/${playerId}/stats`, {
params: {
stats: 'season',
group: 'hitting,pitching',
season: new Date().getFullYear(),
},
timeout: TIMEOUT,
});
return data;
}
async function getGameLog(playerId, season) {
const yr = season || new Date().getFullYear();
const { data } = await axios.get(`${MLB_API_BASE}/people/${playerId}/stats`, {
params: {
stats: 'gameLog',
group: 'hitting,pitching',
season: yr,
},
timeout: TIMEOUT,
});
return data;
}
async function searchPlayer(name) {
const { data } = await axios.get(`${MLB_API_BASE}/sports/1/players`, {
params: {
search: name,
season: new Date().getFullYear(),
},
timeout: TIMEOUT,
});
return data;
}
async function getTeamRoster(teamId) {
const { data } = await axios.get(`${MLB_API_BASE}/teams/${teamId}/roster`, {
params: {
rosterType: 'active',
},
timeout: TIMEOUT,
});
return data;
}
async function getTodaysGames() {
const today = new Date().toISOString().slice(0, 10);
const { data } = await axios.get(`${MLB_API_BASE}/schedule`, {
params: {
sportId: 1,
date: today,
},
timeout: TIMEOUT,
});
return data;
}
module.exports = { getPlayerStats, getGameLog, searchPlayer, getTeamRoster, getTodaysGames };