workspace_delete.rs 881 B

12345678910111213141516171819202122232425262728293031323334
  1. use crate::{
  2. entities::workspace::parser::WorkspaceId,
  3. errors::{ErrorBuilder, WorkspaceError, WsErrCode},
  4. };
  5. use flowy_derive::ProtoBuf;
  6. use std::convert::TryInto;
  7. #[derive(Default, ProtoBuf)]
  8. pub struct DeleteWorkspaceRequest {
  9. #[pb(index = 1)]
  10. workspace_id: String,
  11. }
  12. #[derive(ProtoBuf, Default)]
  13. pub struct DeleteWorkspaceParams {
  14. #[pb(index = 1)]
  15. pub workspace_id: String,
  16. }
  17. impl TryInto<DeleteWorkspaceParams> for DeleteWorkspaceRequest {
  18. type Error = WorkspaceError;
  19. fn try_into(self) -> Result<DeleteWorkspaceParams, Self::Error> {
  20. let workspace_id = WorkspaceId::parse(self.workspace_id)
  21. .map_err(|e| {
  22. ErrorBuilder::new(WsErrCode::WorkspaceIdInvalid)
  23. .msg(e)
  24. .build()
  25. })?
  26. .0;
  27. Ok(DeleteWorkspaceParams { workspace_id })
  28. }
  29. }