mod builder;
mod response;
mod types;
pub use builder::GetCharityCampaignDonationBuilder;
pub use response::{CharityCampaignDonationResponse, CharityCampaignResponse};
pub use types::{CharityCampaign, CharityCampaignDonation};
use crate::{
request::TwitchAPIRequest,
types::{constants::CHARITY, BroadcasterId},
TwitchAPI,
};
pub trait CharityAPI {
fn get_charity_campaign(
&self,
broadcaster_id: &BroadcasterId,
) -> TwitchAPIRequest<CharityCampaignResponse>;
fn get_charity_campaign_donations<'a>(
&'a self,
broadcaster_id: &'a BroadcasterId,
) -> GetCharityCampaignDonationBuilder<'a>;
}
impl CharityAPI for TwitchAPI {
simple_endpoint!(
fn get_charity_campaign(
broadcaster_id: &BroadcasterId,
) -> CharityCampaignResponse;
endpoint: GetCharityCampaign,
method: GET,
path: [CHARITY, "campaigns"],
);
fn get_charity_campaign_donations<'a>(
&'a self,
broadcaster_id: &'a BroadcasterId,
) -> GetCharityCampaignDonationBuilder<'a> {
GetCharityCampaignDonationBuilder::new(self, broadcaster_id)
}
}