nullnet_libdatastore/builders/
batch_update_request_builder.rs1use crate::datastore::{AdvanceFilter, BatchUpdateBody, BatchUpdateRequest, Params};
2
3#[derive(Debug, Default)]
4pub struct BatchUpdateRequestBuilder {
5 advance_filters: Vec<AdvanceFilter>,
6 updates: Option<String>,
7 id: Option<String>,
8 table: Option<String>,
9 is_root: bool,
10}
11
12impl BatchUpdateRequestBuilder {
13 pub fn new() -> Self {
14 Default::default()
15 }
16
17 pub fn id(mut self, id: impl Into<String>) -> Self {
18 self.id = Some(id.into());
19 self
20 }
21
22 pub fn table(mut self, table: impl Into<String>) -> Self {
23 self.table = Some(table.into());
24 self
25 }
26
27 pub fn advance_filter(mut self, filter: AdvanceFilter) -> Self {
28 self.advance_filters.push(filter);
29 self
30 }
31
32 pub fn advance_filters(mut self, filters: impl IntoIterator<Item = AdvanceFilter>) -> Self {
33 self.advance_filters.extend(filters);
34 self
35 }
36
37 pub fn performed_by_root(mut self, value: bool) -> Self {
38 self.is_root = value;
39 self
40 }
41
42 pub fn updates(mut self, updates: impl Into<String>) -> Self {
43 self.updates = Some(updates.into());
44 self
45 }
46
47 pub fn build(self) -> BatchUpdateRequest {
48 BatchUpdateRequest {
49 params: Some(Params {
50 id: self.id.unwrap_or_default(),
51 table: self.table.unwrap_or_default(),
52 r#type: if self.is_root {
53 String::from("root")
54 } else {
55 String::new()
56 },
57 }),
58 body: Some(BatchUpdateBody {
59 advance_filters: self.advance_filters,
60 updates: self.updates.unwrap_or_default(),
61 }),
62 }
63 }
64}