nullnet_libdatastore/builders/
delete_request_builder.rs

1use crate::datastore::{DeleteQuery, DeleteRequest, Params};
2
3#[derive(Debug, Default)]
4pub struct DeleteRequestBuilder {
5    id: Option<String>,
6    table: Option<String>,
7    is_root: bool,
8    is_permanent: bool,
9}
10
11impl DeleteRequestBuilder {
12    pub fn new() -> Self {
13        Default::default()
14    }
15
16    pub fn id(mut self, id: impl Into<String>) -> Self {
17        self.id = Some(id.into());
18        self
19    }
20
21    pub fn table(mut self, table: impl Into<String>) -> Self {
22        self.table = Some(table.into());
23        self
24    }
25
26    pub fn performed_by_root(mut self, value: bool) -> Self {
27        self.is_root = value;
28        self
29    }
30    pub fn permanent(mut self, val: bool) -> Self {
31        self.is_permanent = val;
32        self
33    }
34
35    pub fn build(self) -> DeleteRequest {
36        DeleteRequest {
37            params: Some(Params {
38                id: self.id.unwrap_or_default(),
39                table: self.table.unwrap_or_default(),
40                r#type: if self.is_root {
41                    String::from("root")
42                } else {
43                    String::new()
44                },
45            }),
46            query: Some(DeleteQuery {
47                is_permanent: if self.is_permanent {
48                    String::from("true")
49                } else {
50                    String::from("false")
51                },
52            }),
53        }
54    }
55}