workspace_deps_impl.rs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. use flowy_database::DBConnection;
  2. use flowy_user::prelude::UserSession;
  3. use flowy_workspace::{
  4. errors::{ErrorBuilder, ErrorCode, WorkspaceError},
  5. module::{WorkspaceDatabase, WorkspaceUser},
  6. };
  7. use std::sync::Arc;
  8. pub struct WorkspaceUserImpl {
  9. pub(crate) user_session: Arc<UserSession>,
  10. }
  11. impl WorkspaceUser for WorkspaceUserImpl {
  12. fn user_id(&self) -> Result<String, WorkspaceError> {
  13. self.user_session.user_id().map_err(|e| {
  14. ErrorBuilder::new(ErrorCode::UserInternalError)
  15. .error(e)
  16. .build()
  17. })
  18. }
  19. fn token(&self) -> Result<String, WorkspaceError> {
  20. self.user_session.token().map_err(|e| {
  21. ErrorBuilder::new(ErrorCode::UserInternalError)
  22. .error(e)
  23. .build()
  24. })
  25. }
  26. }
  27. pub struct WorkspaceDatabaseImpl {
  28. pub(crate) user_session: Arc<UserSession>,
  29. }
  30. impl WorkspaceDatabase for WorkspaceDatabaseImpl {
  31. fn db_connection(&self) -> Result<DBConnection, WorkspaceError> {
  32. self.user_session.get_db_connection().map_err(|e| {
  33. ErrorBuilder::new(ErrorCode::DatabaseConnectionFail)
  34. .error(e)
  35. .build()
  36. })
  37. }
  38. }