use crate::{ 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}; pub async fn create_app( data: Data, controller: ModuleData>, ) -> ResponseResult { let params: CreateAppParams = data.into_inner().try_into()?; let detail = controller.save_app(params)?; response_ok(detail) } pub async fn get_app( data: Data, controller: ModuleData>, ) -> ResponseResult { 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) }