middleware.rs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. use lazy_static::lazy_static;
  2. use std::sync::Arc;
  3. lazy_static! {
  4. pub(crate) static ref MIDDLEWARE: Arc<WorkspaceMiddleware> = Arc::new(WorkspaceMiddleware {});
  5. }
  6. use crate::{
  7. errors::{ErrorCode, WorkspaceError},
  8. notify::*,
  9. };
  10. use flowy_net::{request::ResponseMiddleware, response::FlowyResponse};
  11. pub(crate) struct WorkspaceMiddleware {}
  12. impl ResponseMiddleware for WorkspaceMiddleware {
  13. fn receive_response(&self, token: &Option<String>, response: &FlowyResponse) {
  14. if let Some(error) = &response.error {
  15. if error.is_unauthorized() {
  16. log::error!("workspace user is unauthorized");
  17. match token {
  18. None => {},
  19. Some(token) => {
  20. let error = WorkspaceError::new(ErrorCode::UserUnauthorized, "");
  21. send_dart_notification(token, WorkspaceNotification::UserUnauthorized)
  22. .error(error)
  23. .send()
  24. },
  25. }
  26. }
  27. }
  28. }
  29. }