36 lines
1.2 KiB
Rust
Raw Normal View History

use crate::{
2021-07-20 15:51:49 +08:00
entities::{
app::{App, CreateAppParams, CreateAppRequest, QueryAppParams, QueryAppRequest},
view::RepeatedView,
},
errors::WorkspaceError,
services::AppController,
};
use flowy_dispatch::prelude::{response_ok, Data, ModuleData, ResponseResult};
use std::{convert::TryInto, sync::Arc};
2021-07-21 22:41:44 +08:00
#[tracing::instrument(name = "create_app", skip(data, controller))]
pub async fn create_app(
data: Data<CreateAppRequest>,
controller: ModuleData<Arc<AppController>>,
2021-07-19 22:44:37 +08:00
) -> ResponseResult<App, WorkspaceError> {
let params: CreateAppParams = data.into_inner().try_into()?;
let detail = controller.create_app(params)?;
response_ok(detail)
}
2021-07-20 15:51:49 +08:00
2021-07-21 22:41:44 +08:00
#[tracing::instrument(name = "get_app", skip(data, controller))]
2021-07-20 15:51:49 +08:00
pub async fn get_app(
data: Data<QueryAppRequest>,
controller: ModuleData<Arc<AppController>>,
) -> ResponseResult<App, WorkspaceError> {
let params: QueryAppParams = data.into_inner().try_into()?;
let mut app = controller.read_app(&params.app_id).await?;
2021-07-20 15:51:49 +08:00
if params.read_views {
let views = controller.read_views(&params.app_id).await?;
2021-07-20 15:51:49 +08:00
app.views = RepeatedView { items: views };
}
response_ok(app)
}