misskey_api/endpoint/notes/polls/
vote.rs1use crate::model::{id::Id, note::Note};
2
3use serde::Serialize;
4
5#[derive(Serialize, Debug, Clone)]
6#[serde(rename_all = "camelCase")]
7pub struct Request {
8 pub note_id: Id<Note>,
9 pub choice: u64,
10}
11
12impl misskey_core::Request for Request {
13 type Response = ();
14 const ENDPOINT: &'static str = "notes/polls/vote";
15}
16
17#[cfg(test)]
18mod tests {
19 use super::Request;
20 use crate::test::{ClientExt, TestClient};
21
22 #[tokio::test]
23 async fn request() {
24 let client = TestClient::new();
25
26 let poll = crate::endpoint::notes::create::PollRequest {
27 choices: vec!["a".to_string(), "b".to_string(), "c".to_string()],
28 multiple: None,
29 expires_at: None,
30 expired_after: None,
31 };
32 let note = client
33 .test(crate::endpoint::notes::create::Request {
34 visibility: None,
35 visible_user_ids: None,
36 text: Some("poll".to_string()),
37 cw: None,
38 via_mobile: None,
39 local_only: None,
40 no_extract_mentions: None,
41 no_extract_hashtags: None,
42 no_extract_emojis: None,
43 file_ids: None,
44 reply_id: None,
45 renote_id: None,
46 poll: Some(poll),
47 #[cfg(feature = "12-47-0")]
48 channel_id: None,
49 })
50 .await
51 .created_note;
52
53 client
54 .test(Request {
55 note_id: note.id,
56 choice: 1,
57 })
58 .await;
59 }
60}