mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-04-24 14:47:13 -04:00
40 lines
1.7 KiB
Rust
40 lines
1.7 KiB
Rust
use crate::{entities::workspace::*, errors::WorkspaceError, services::WorkspaceController};
|
|
use flowy_dispatch::prelude::{data_result, Data, DataResult, Unit};
|
|
use std::{convert::TryInto, sync::Arc};
|
|
|
|
#[tracing::instrument(skip(data, controller), err)]
|
|
pub(crate) async fn create_workspace_handler(
|
|
data: Data<CreateWorkspaceRequest>,
|
|
controller: Unit<Arc<WorkspaceController>>,
|
|
) -> DataResult<Workspace, WorkspaceError> {
|
|
let controller = controller.get_ref().clone();
|
|
let params: CreateWorkspaceParams = data.into_inner().try_into()?;
|
|
let detail = controller.create_workspace(params).await?;
|
|
data_result(detail)
|
|
}
|
|
|
|
#[tracing::instrument(skip(controller), err)]
|
|
pub(crate) async fn read_cur_workspace_handler(controller: Unit<Arc<WorkspaceController>>) -> DataResult<Workspace, WorkspaceError> {
|
|
let workspace = controller.read_cur_workspace().await?;
|
|
data_result(workspace)
|
|
}
|
|
|
|
#[tracing::instrument(skip(data, controller), err)]
|
|
pub(crate) async fn read_workspaces_handler(
|
|
data: Data<QueryWorkspaceRequest>,
|
|
controller: Unit<Arc<WorkspaceController>>,
|
|
) -> DataResult<RepeatedWorkspace, WorkspaceError> {
|
|
let params: QueryWorkspaceParams = data.into_inner().try_into()?;
|
|
let workspaces = controller.read_workspaces(params).await?;
|
|
data_result(workspaces)
|
|
}
|
|
|
|
#[tracing::instrument(skip(data, controller), err)]
|
|
pub(crate) async fn open_workspace_handler(
|
|
data: Data<QueryWorkspaceRequest>,
|
|
controller: Unit<Arc<WorkspaceController>>,
|
|
) -> DataResult<Workspace, WorkspaceError> {
|
|
let params: QueryWorkspaceParams = data.into_inner().try_into()?;
|
|
let workspaces = controller.open_workspace(params).await?;
|
|
data_result(workspaces)
|
|
}
|