use crate::{ entities::view::{ CreateViewParams, CreateViewRequest, DeleteViewParams, DeleteViewRequest, QueryViewParams, QueryViewRequest, UpdateViewParams, UpdateViewRequest, View, }, errors::WorkspaceError, services::ViewController, }; use flowy_dispatch::prelude::{response_ok, Data, ResponseResult, Unit}; use std::{convert::TryInto, sync::Arc}; #[tracing::instrument(name = "create_view", skip(data, controller))] pub async fn create_view( data: Data, controller: Unit>, ) -> ResponseResult { let params: CreateViewParams = data.into_inner().try_into()?; let view = controller.create_view(params).await?; response_ok(view) } #[tracing::instrument(name = "read_view", skip(data, controller))] pub async fn read_view( data: Data, controller: Unit>, ) -> ResponseResult { let params: QueryViewParams = data.into_inner().try_into()?; let view = controller .read_view(¶ms.view_id, params.is_trash) .await?; response_ok(view) } #[tracing::instrument(name = "update_view", skip(data, controller))] pub async fn update_view( data: Data, controller: Unit>, ) -> Result<(), WorkspaceError> { let params: UpdateViewParams = data.into_inner().try_into()?; let _ = controller.update_view(params).await?; Ok(()) } #[tracing::instrument(name = "delete_view", skip(data, controller))] pub async fn delete_view( data: Data, controller: Unit>, ) -> Result<(), WorkspaceError> { let params: DeleteViewParams = data.into_inner().try_into()?; let _ = controller.delete_view(¶ms.view_id).await?; Ok(()) }