lichess_api/model/challenges/
decline.rs1use crate::model::{Body, Request};
2use serde::Serialize;
3
4#[derive(Default, Clone, Debug, Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct PostQuery;
7
8#[derive(Clone, Debug, PartialEq, Eq, Serialize)]
9#[serde(rename_all = "camelCase")]
10pub enum Reason {
11 Generic,
12 Later,
13 TooFast,
14 TooSlow,
15 TimeControl,
16 Rated,
17 Casual,
18 Standard,
19 Variant,
20 NoBot,
21 OnlyBot,
22}
23
24#[derive(Clone, Debug, Serialize)]
25pub struct DeclineReason {
26 pub reason: Reason,
27}
28
29pub type PostRequest = Request<PostQuery, DeclineReason>;
30
31impl PostRequest {
32 pub fn new(challenge_id: String, reason: Reason) -> Self {
33 let path = format!("/api/challenge/{challenge_id}/decline");
34 Self::post(path, None, Body::Form(DeclineReason { reason }), None)
35 }
36}