lichess_api/model/games/export/
by_user.rs1use super::Base;
2use crate::model::{Color, PerfType};
3use serde::Serialize;
4
5#[derive(Default, Clone, Debug, Serialize)]
6pub struct GetQuery {
7 #[serde(flatten)]
8 pub base: Base,
9 pub since: Option<u64>,
10 pub until: Option<u64>,
11 pub max: u64,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub vs: Option<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub rated: Option<bool>,
16 pub perf_type: Option<PerfType>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub color: Option<Color>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub analysed: Option<bool>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub ongoing: Option<bool>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub finished: Option<bool>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub last_fen: Option<bool>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub sort: Option<Sort>,
30}
31
32#[derive(Clone, Debug, PartialEq, Eq, Serialize)]
33#[serde(rename_all = "camelCase")]
34pub enum Sort {
35 DateAsc,
36 DateDesc,
37}
38
39pub type GetRequest = crate::model::Request<GetQuery>;
40
41impl GetRequest {
42 pub fn new(username: &str, query: GetQuery) -> Self {
43 Self::get(format!("/api/games/user/{username}"), query, None)
44 }
45}