nullnet_libdatastore/builders/
delete_request_builder.rs1use 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}