Skip to main content

mlb_api/requests/jobs/
umpire.rs

1use crate::jobs::JobsResponse;
2use crate::types::MLB_API_DATE_FORMAT;
3use crate::request::RequestURL;
4use bon::Builder;
5use chrono::NaiveDate;
6use std::fmt::{Display, Formatter};
7use crate::sport::SportId;
8
9// pub mod games; // needs private mlb-only api key -- absolutely not going to implement this.
10
11#[derive(Builder)]
12pub struct JobsUmpiresRequest {
13    #[builder(into, default)]
14    sport_id: SportId,
15    date: Option<NaiveDate>,
16}
17
18impl Display for JobsUmpiresRequest {
19    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
20        write!(f, "http://statsapi.mlb.com/api/v1/jobs/umpires{}", gen_params! { "sportId": self.sport_id, "date"?: self.date.as_ref().map(|date| date.format(MLB_API_DATE_FORMAT)) })
21    }
22}
23
24impl RequestURL for JobsUmpiresRequest {
25	type Response = JobsResponse;
26}