rusftx/rest/requests/
delete_subaccount.rs

1use crate::rest::request::{AuthenticatedRequest, Request};
2use std::borrow::Cow;
3
4#[derive(Debug, builder_pattern::Builder)]
5pub struct DeleteSubaccountRequest {
6    #[into]
7    pub nickname: String,
8}
9
10#[derive(Debug, serde::Serialize)]
11pub struct DeleteSubaccountRequestBody {
12    pub nickname: String,
13}
14
15impl Request for DeleteSubaccountRequest {
16    type Response = ();
17    type Query = ();
18    type Body = DeleteSubaccountRequestBody;
19
20    fn path(&self) -> Cow<str> {
21        "subaccounts".into()
22    }
23
24    fn method(&self) -> http::Method {
25        http::Method::DELETE
26    }
27
28    fn body(&self) -> Option<Self::Body> {
29        Some(DeleteSubaccountRequestBody {
30            nickname: self.nickname.clone(),
31        })
32    }
33}
34
35impl AuthenticatedRequest for DeleteSubaccountRequest {}
36
37#[cfg(test)]
38mod tests {
39    use crate::rest::requests::delete_subaccount::DeleteSubaccountRequest;
40    use crate::rest::requests::test_utils;
41
42    #[tokio::test]
43    async fn delete_subaccount() {
44        let rest_api = test_utils::get_rest_api_with_authentication_from_env();
45        let request = DeleteSubaccountRequest::new().nickname("sub1").build();
46        let result = rest_api.send(request).await;
47        assert!(result.is_ok());
48    }
49}