misskey_api/endpoint/admin/promo/
create.rs

1use crate::model::{id::Id, note::Note};
2
3use chrono::{serde::ts_milliseconds, DateTime, Utc};
4use serde::Serialize;
5
6#[derive(Serialize, Debug, Clone)]
7#[serde(rename_all = "camelCase")]
8pub struct Request {
9    pub note_id: Id<Note>,
10    #[serde(with = "ts_milliseconds")]
11    pub expires_at: DateTime<Utc>,
12}
13
14impl misskey_core::Request for Request {
15    type Response = ();
16    const ENDPOINT: &'static str = "admin/promo/create";
17}
18
19#[cfg(test)]
20mod tests {
21    use super::Request;
22    use crate::test::{ClientExt, TestClient};
23
24    #[tokio::test]
25    async fn request() {
26        let client = TestClient::new();
27        let note = client.create_note(Some("hi"), None, None).await;
28
29        client
30            .admin
31            .test(Request {
32                note_id: note.id,
33                expires_at: chrono::Utc::now() + chrono::Duration::hours(1),
34            })
35            .await;
36    }
37}