setting_builder.rs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. use crate::entities::{AlterFilterParams, DeleteFilterParams, GridLayout, GridSettingChangesetParams};
  2. pub struct GridSettingChangesetBuilder {
  3. params: GridSettingChangesetParams,
  4. }
  5. impl GridSettingChangesetBuilder {
  6. pub fn new(grid_id: &str, layout_type: &GridLayout) -> Self {
  7. let params = GridSettingChangesetParams {
  8. grid_id: grid_id.to_string(),
  9. layout_type: layout_type.clone().into(),
  10. insert_filter: None,
  11. delete_filter: None,
  12. insert_group: None,
  13. delete_group: None,
  14. alert_sort: None,
  15. delete_sort: None,
  16. };
  17. Self { params }
  18. }
  19. pub fn insert_filter(mut self, params: AlterFilterParams) -> Self {
  20. self.params.insert_filter = Some(params);
  21. self
  22. }
  23. pub fn delete_filter(mut self, params: DeleteFilterParams) -> Self {
  24. self.params.delete_filter = Some(params);
  25. self
  26. }
  27. pub fn build(self) -> GridSettingChangesetParams {
  28. self.params
  29. }
  30. }