mod response;
mod types;
pub use response::StartRaidResponse;
pub use types::StartRaid;
use crate::{
request::{NoContent, TwitchAPIRequest},
types::{
constants::{BROADCASTER_ID, FROM_BROADCASTER_ID, RAIDS, TO_BROADCASTER_ID},
BroadcasterId,
},
TwitchAPI,
};
pub trait RaidAPI {
fn start_raid(
&self,
from_broadcaster_id: &BroadcasterId,
to_broadcaster_id: &BroadcasterId,
) -> TwitchAPIRequest<StartRaidResponse>;
fn cancel_raid(&self, broadcaster_id: &BroadcasterId) -> TwitchAPIRequest<NoContent>;
}
impl RaidAPI for TwitchAPI {
simple_endpoint!(
fn start_raid(
from_broadcaster_id: &BroadcasterId [key = FROM_BROADCASTER_ID],
to_broadcaster_id: &BroadcasterId [key = TO_BROADCASTER_ID],
) -> StartRaidResponse;
endpoint: Startraid,
method: POST,
path: [RAIDS],
);
simple_endpoint!(
fn cancel_raid(
broadcaster_id: &BroadcasterId [key = BROADCASTER_ID],
) -> NoContent ;
endpoint: Cancelraid,
method: DELETE,
path: [RAIDS],
);
}