workspace_create.rs 839 B

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