mod.rs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. mod server_api;
  2. mod server_api_mock;
  3. pub use server_api::*;
  4. // TODO: exclude mock files in production
  5. pub use server_api_mock::*;
  6. use crate::{
  7. entities::{
  8. app::{App, CreateAppParams, DeleteAppParams, QueryAppParams, UpdateAppParams},
  9. view::{CreateViewParams, DeleteViewParams, QueryViewParams, UpdateViewParams, View},
  10. workspace::{
  11. CreateWorkspaceParams,
  12. DeleteWorkspaceParams,
  13. QueryWorkspaceParams,
  14. RepeatedWorkspace,
  15. UpdateWorkspaceParams,
  16. Workspace,
  17. },
  18. },
  19. errors::WorkspaceError,
  20. };
  21. use flowy_infra::future::ResultFuture;
  22. use std::sync::Arc;
  23. pub(crate) type Server = Arc<dyn WorkspaceServerAPI + Send + Sync>;
  24. pub trait WorkspaceServerAPI {
  25. // Workspace
  26. fn create_workspace(&self, token: &str, params: CreateWorkspaceParams) -> ResultFuture<Workspace, WorkspaceError>;
  27. fn read_workspace(&self, token: &str, params: QueryWorkspaceParams) -> ResultFuture<RepeatedWorkspace, WorkspaceError>;
  28. fn update_workspace(&self, token: &str, params: UpdateWorkspaceParams) -> ResultFuture<(), WorkspaceError>;
  29. fn delete_workspace(&self, token: &str, params: DeleteWorkspaceParams) -> ResultFuture<(), WorkspaceError>;
  30. // View
  31. fn create_view(&self, token: &str, params: CreateViewParams) -> ResultFuture<View, WorkspaceError>;
  32. fn read_view(&self, token: &str, params: QueryViewParams) -> ResultFuture<Option<View>, WorkspaceError>;
  33. fn delete_view(&self, token: &str, params: DeleteViewParams) -> ResultFuture<(), WorkspaceError>;
  34. fn update_view(&self, token: &str, params: UpdateViewParams) -> ResultFuture<(), WorkspaceError>;
  35. // App
  36. fn create_app(&self, token: &str, params: CreateAppParams) -> ResultFuture<App, WorkspaceError>;
  37. fn read_app(&self, token: &str, params: QueryAppParams) -> ResultFuture<Option<App>, WorkspaceError>;
  38. fn update_app(&self, token: &str, params: UpdateAppParams) -> ResultFuture<(), WorkspaceError>;
  39. fn delete_app(&self, token: &str, params: DeleteAppParams) -> ResultFuture<(), WorkspaceError>;
  40. }
  41. pub(crate) fn construct_workspace_server() -> Arc<dyn WorkspaceServerAPI + Send + Sync> {
  42. if cfg!(feature = "http_server") {
  43. Arc::new(WorkspaceServer {})
  44. } else {
  45. Arc::new(WorkspaceServerMock {})
  46. }
  47. }