Skip to main content

lichess_api/model/teams/
join.rs

1use crate::model::{Body, Request};
2use serde::Serialize;
3use serde_with::skip_serializing_none;
4
5#[derive(Default, Clone, Debug, Serialize)]
6pub struct PostQuery;
7
8#[skip_serializing_none]
9#[derive(Default, Clone, Debug, Serialize)]
10pub struct JoinForm {
11    pub message: Option<String>,
12    pub password: Option<String>,
13}
14
15pub type PostRequest = Request<PostQuery, JoinForm>;
16
17impl PostRequest {
18    pub fn new(team_id: &str, form: JoinForm) -> Self {
19        Self::post(
20            format!("/team/{team_id}/join"),
21            None,
22            Body::Form(form),
23            None,
24        )
25    }
26}
27
28impl<S: AsRef<str>> From<S> for PostRequest {
29    fn from(team_id: S) -> Self {
30        Self::new(team_id.as_ref(), JoinForm::default())
31    }
32}