lichess_api/model/board/
chat.rs1use crate::model::{Body, Request, Room};
2use serde::{Deserialize, Serialize};
3
4#[derive(Default, Clone, Debug, Serialize)]
5pub struct GetQuery;
6
7pub type GetRequest = Request<GetQuery>;
8
9impl GetRequest {
10 pub fn new(game_id: &str) -> Self {
11 Self::get(format!("/api/board/game/{game_id}/chat"), None, None)
12 }
13}
14
15impl<S: AsRef<str>> From<S> for GetRequest {
16 fn from(s: S) -> Self {
17 Self::new(s.as_ref())
18 }
19}
20
21#[derive(Default, Clone, Debug, Serialize)]
22pub struct PostQuery;
23
24#[derive(Clone, Debug, Serialize)]
25pub struct ChatMessage {
26 pub room: Room,
27 pub text: String,
28}
29
30pub type PostRequest = Request<PostQuery, ChatMessage>;
31
32impl PostRequest {
33 pub fn new(game_id: &str, room: Room, message: &str) -> Self {
34 let message = ChatMessage {
35 room,
36 text: message.to_string(),
37 };
38 let path = format!("/api/board/game/{game_id}/chat");
39 Self::post(path, None, Body::Form(message), None)
40 }
41}
42
43#[derive(Clone, Debug, Deserialize, Serialize)]
44pub struct ChatLine {
45 pub text: String,
46 pub user: String,
47}