lichess_api/model/bot/
chat.rs

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