2021-07-14 21:12:52 +08:00
|
|
|
use crate::{
|
2021-07-20 15:51:49 +08:00
|
|
|
entities::{
|
|
|
|
app::{App, CreateAppParams, CreateAppRequest, QueryAppParams, QueryAppRequest},
|
|
|
|
view::RepeatedView,
|
|
|
|
},
|
2021-07-14 21:12:52 +08:00
|
|
|
errors::WorkspaceError,
|
|
|
|
services::AppController,
|
|
|
|
};
|
|
|
|
use flowy_dispatch::prelude::{response_ok, Data, ModuleData, ResponseResult};
|
|
|
|
use std::{convert::TryInto, sync::Arc};
|
|
|
|
|
|
|
|
pub async fn create_app(
|
|
|
|
data: Data<CreateAppRequest>,
|
|
|
|
controller: ModuleData<Arc<AppController>>,
|
2021-07-19 22:44:37 +08:00
|
|
|
) -> ResponseResult<App, WorkspaceError> {
|
2021-07-14 21:12:52 +08:00
|
|
|
let params: CreateAppParams = data.into_inner().try_into()?;
|
|
|
|
let detail = controller.save_app(params)?;
|
|
|
|
response_ok(detail)
|
|
|
|
}
|
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.get_app(¶ms.app_id).await?;
|
|
|
|
if params.read_views {
|
|
|
|
let views = controller.get_views(¶ms.app_id).await?;
|
|
|
|
app.views = RepeatedView { items: views };
|
|
|
|
}
|
|
|
|
|
|
|
|
response_ok(app)
|
|
|
|
}
|