view_handler.rs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. use crate::{
  2. entities::view::{
  3. CreateViewParams,
  4. CreateViewRequest,
  5. DeleteViewParams,
  6. DeleteViewRequest,
  7. QueryViewParams,
  8. QueryViewRequest,
  9. UpdateViewParams,
  10. UpdateViewRequest,
  11. View,
  12. },
  13. errors::WorkspaceError,
  14. services::ViewController,
  15. };
  16. use flowy_dispatch::prelude::{response_ok, Data, ResponseResult, Unit};
  17. use std::{convert::TryInto, sync::Arc};
  18. #[tracing::instrument(name = "create_view", skip(data, controller))]
  19. pub async fn create_view(
  20. data: Data<CreateViewRequest>,
  21. controller: Unit<Arc<ViewController>>,
  22. ) -> ResponseResult<View, WorkspaceError> {
  23. let params: CreateViewParams = data.into_inner().try_into()?;
  24. let view = controller.create_view(params).await?;
  25. response_ok(view)
  26. }
  27. #[tracing::instrument(name = "read_view", skip(data, controller))]
  28. pub async fn read_view(
  29. data: Data<QueryViewRequest>,
  30. controller: Unit<Arc<ViewController>>,
  31. ) -> ResponseResult<View, WorkspaceError> {
  32. let params: QueryViewParams = data.into_inner().try_into()?;
  33. let view = controller
  34. .read_view(&params.view_id, params.is_trash)
  35. .await?;
  36. response_ok(view)
  37. }
  38. #[tracing::instrument(name = "update_view", skip(data, controller))]
  39. pub async fn update_view(
  40. data: Data<UpdateViewRequest>,
  41. controller: Unit<Arc<ViewController>>,
  42. ) -> Result<(), WorkspaceError> {
  43. let params: UpdateViewParams = data.into_inner().try_into()?;
  44. let _ = controller.update_view(params).await?;
  45. Ok(())
  46. }
  47. #[tracing::instrument(name = "delete_view", skip(data, controller))]
  48. pub async fn delete_view(
  49. data: Data<DeleteViewRequest>,
  50. controller: Unit<Arc<ViewController>>,
  51. ) -> Result<(), WorkspaceError> {
  52. let params: DeleteViewParams = data.into_inner().try_into()?;
  53. let _ = controller.delete_view(&params.view_id).await?;
  54. Ok(())
  55. }