Skip to content

Commit 56ae097

Browse files
committed
Implement dumps
1 parent a78ec53 commit 56ae097

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/dumps.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
use crate::{client::Client, errors::Error, request::*};
2+
use serde::Deserialize;
3+
4+
#[derive(Debug, Deserialize, Clone, PartialEq)]
5+
#[serde(rename_all = "snake_case")]
6+
pub enum DumpStatus {
7+
Done,
8+
InProgress,
9+
Failed,
10+
}
11+
12+
#[derive(Debug, Deserialize, Clone)]
13+
#[serde(rename_all = "camelCase")]
14+
pub struct DumpInfo {
15+
pub uid: String,
16+
pub status: DumpStatus,
17+
pub error: Option<serde_json::Value>,
18+
}
19+
20+
impl<'a> Client<'a> {
21+
pub async fn create_dump(&self) -> Result<DumpInfo, Error> {
22+
request::<(), DumpInfo>(
23+
&format!("{}/dumps", self.host),
24+
self.apikey,
25+
Method::Post(()),
26+
202,
27+
)
28+
.await
29+
}
30+
31+
pub async fn get_dump_status(&self, dump_uid: &str) -> Result<DumpInfo, Error> {
32+
request::<(), DumpInfo>(
33+
&format!("{}/dumps/{}/status", self.host, dump_uid),
34+
self.apikey,
35+
Method::Get,
36+
200,
37+
)
38+
.await
39+
}
40+
}

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,4 @@ mod request;
110110
pub mod search;
111111
/// Module containing settings
112112
pub mod settings;
113+
pub mod dumps;

0 commit comments

Comments
 (0)