lichess_api/model/challenges/
cancel.rs1use crate::model::Request;
2use serde::Serialize;
3
4#[derive(Default, Clone, Debug, Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct PostQuery {
7 opponent_token: String,
8}
9
10pub type PostRequest = Request<PostQuery>;
11
12impl PostRequest {
13 pub fn new(challenge_id: String, opponent_token: Option<String>) -> Self {
14 let path = format!("/api/challenge/{challenge_id}/cancel");
15 let query = opponent_token.map(|t| PostQuery { opponent_token: t });
16 Self::post(path, query, None, None)
17 }
18}
19
20impl<S: Into<String>> From<S> for PostRequest {
21 fn from(challenge_id: S) -> Self {
22 Self::new(challenge_id.into(), None)
23 }
24}