view_delete.rs 818 B

123456789101112131415161718192021222324252627282930313233
  1. use crate::{entities::view::parser::ViewId, errors::WorkspaceError};
  2. use flowy_derive::ProtoBuf;
  3. use std::convert::TryInto;
  4. #[derive(Default, ProtoBuf)]
  5. pub struct DeleteViewRequest {
  6. #[pb(index = 1)]
  7. pub view_ids: Vec<String>,
  8. }
  9. #[derive(Default, ProtoBuf)]
  10. pub struct DeleteViewParams {
  11. #[pb(index = 1)]
  12. pub view_ids: Vec<String>,
  13. }
  14. impl TryInto<DeleteViewParams> for DeleteViewRequest {
  15. type Error = WorkspaceError;
  16. fn try_into(self) -> Result<DeleteViewParams, Self::Error> {
  17. let mut view_ids = vec![];
  18. for view_id in self.view_ids {
  19. let view_id = ViewId::parse(view_id)
  20. .map_err(|e| WorkspaceError::view_id().context(e))?
  21. .0;
  22. view_ids.push(view_id);
  23. }
  24. Ok(DeleteViewParams { view_ids })
  25. }
  26. }