lichess-api 1.0.0

A client library for the Lichess API
Documentation
use crate::model::{Body, Request, VariantKey};
use serde::Serialize;
use serde_with::skip_serializing_none;

#[skip_serializing_none]
#[derive(Default, Clone, Debug, Serialize)]
pub struct UpdateSwissTournamentForm {
    pub name: Option<String>,
    #[serde(rename = "clock.limit")]
    pub clock_limit: u32,
    #[serde(rename = "clock.increment")]
    pub clock_increment: u32,
    #[serde(rename = "nbRounds")]
    pub nb_rounds: u32,
    #[serde(rename = "startsAt")]
    pub starts_at: Option<i64>,
    #[serde(rename = "roundInterval")]
    pub round_interval: Option<i32>,
    pub variant: Option<VariantKey>,
    pub position: Option<String>,
    pub description: Option<String>,
    pub rated: Option<bool>,
    pub password: Option<String>,
    #[serde(rename = "forbiddenPairings")]
    pub forbidden_pairings: Option<String>,
    #[serde(rename = "manualPairings")]
    pub manual_pairings: Option<String>,
    #[serde(rename = "chatFor")]
    pub chat_for: Option<u8>,
    #[serde(rename = "conditions.minRating.rating")]
    pub conditions_min_rating: Option<u32>,
    #[serde(rename = "conditions.maxRating.rating")]
    pub conditions_max_rating: Option<u32>,
    #[serde(rename = "conditions.nbRatedGame.nb")]
    pub conditions_nb_rated_game: Option<u32>,
    #[serde(rename = "conditions.playYourGames")]
    pub conditions_play_your_games: Option<bool>,
    #[serde(rename = "conditions.allowList")]
    pub conditions_allow_list: Option<String>,
}

#[derive(Default, Clone, Debug, Serialize)]
pub struct PostQuery;

pub type PostRequest = Request<PostQuery, UpdateSwissTournamentForm>;

impl PostRequest {
    pub fn new(id: &str, form: UpdateSwissTournamentForm) -> Self {
        Self::post(
            format!("/api/swiss/{id}/edit"),
            None,
            Body::Form(form),
            None,
        )
    }
}