misskey_api/endpoint/admin/
logs.rs1use crate::model::log::{Log, LogLevel};
2
3use serde::Serialize;
4use typed_builder::TypedBuilder;
5
6#[derive(Serialize, Default, Debug, Clone, TypedBuilder)]
7#[serde(rename_all = "camelCase")]
8#[builder(doc)]
9pub struct Request {
10 #[serde(skip_serializing_if = "Option::is_none")]
12 #[builder(default, setter(strip_option))]
13 pub limit: Option<u8>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 #[builder(default, setter(strip_option))]
16 pub level: Option<LogLevel>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 #[builder(default, setter(strip_option, into))]
19 pub domain: Option<String>,
20}
21
22impl misskey_core::Request for Request {
23 type Response = Vec<Log>;
24 const ENDPOINT: &'static str = "admin/logs";
25}
26
27#[cfg(test)]
28mod tests {
29 use super::Request;
30 use crate::test::{ClientExt, TestClient};
31
32 #[tokio::test]
33 async fn request() {
34 let client = TestClient::new();
35 client.admin.test(Request::default()).await;
36 }
37
38 #[tokio::test]
39 async fn request_with_limit() {
40 let client = TestClient::new();
41 client
42 .admin
43 .test(Request {
44 limit: Some(100),
45 level: None,
46 domain: None,
47 })
48 .await;
49 }
50
51 #[tokio::test]
53 async fn request_with_options() {
54 use crate::model::log::LogLevel;
55
56 let client = TestClient::new();
57
58 client
59 .admin
60 .test(Request {
61 limit: None,
62 level: Some(LogLevel::Debug),
63 domain: Some("chart remote -resolve-user".to_string()),
64 })
65 .await;
66 }
67}