server_api.rs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. use crate::{
  2. entities::{SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserParams, UserProfile},
  3. errors::UserError,
  4. services::server::UserServerAPI,
  5. };
  6. use backend_service::{configuration::*, user_request::*};
  7. use lib_infra::future::FutureResult;
  8. pub struct UserHttpServer {
  9. config: ClientServerConfiguration,
  10. }
  11. impl UserHttpServer {
  12. pub fn new(config: ClientServerConfiguration) -> Self { Self { config } }
  13. }
  14. impl UserServerAPI for UserHttpServer {
  15. fn sign_up(&self, params: SignUpParams) -> FutureResult<SignUpResponse, UserError> {
  16. let url = self.config.sign_up_url();
  17. FutureResult::new(async move {
  18. let resp = user_sign_up_request(params, &url).await?;
  19. Ok(resp)
  20. })
  21. }
  22. fn sign_in(&self, params: SignInParams) -> FutureResult<SignInResponse, UserError> {
  23. let url = self.config.sign_in_url();
  24. FutureResult::new(async move {
  25. let resp = user_sign_in_request(params, &url).await?;
  26. Ok(resp)
  27. })
  28. }
  29. fn sign_out(&self, token: &str) -> FutureResult<(), UserError> {
  30. let token = token.to_owned();
  31. let url = self.config.sign_out_url();
  32. FutureResult::new(async move {
  33. let _ = user_sign_out_request(&token, &url).await;
  34. Ok(())
  35. })
  36. }
  37. fn update_user(&self, token: &str, params: UpdateUserParams) -> FutureResult<(), UserError> {
  38. let token = token.to_owned();
  39. let url = self.config.user_profile_url();
  40. FutureResult::new(async move {
  41. let _ = update_user_profile_request(&token, params, &url).await?;
  42. Ok(())
  43. })
  44. }
  45. fn get_user(&self, token: &str) -> FutureResult<UserProfile, UserError> {
  46. let token = token.to_owned();
  47. let url = self.config.user_profile_url();
  48. FutureResult::new(async move {
  49. let profile = get_user_profile_request(&token, &url).await?;
  50. Ok(profile)
  51. })
  52. }
  53. fn ws_addr(&self) -> String { self.config.ws_addr() }
  54. }
  55. // use crate::notify::*;
  56. // use backend_service::response::FlowyResponse;
  57. // use flowy_user_infra::errors::ErrorCode;
  58. // struct Middleware {}
  59. //
  60. //
  61. //
  62. // impl ResponseMiddleware for Middleware {
  63. // fn receive_response(&self, token: &Option<String>, response:
  64. // &FlowyResponse) { if let Some(error) = &response.error {
  65. // if error.is_unauthorized() {
  66. // log::error!("user unauthorized");
  67. // match token {
  68. // None => {},
  69. // Some(token) => {
  70. // let error =
  71. // UserError::new(ErrorCode::UserUnauthorized, "");
  72. // dart_notify(token, UserNotification::UserUnauthorized)
  73. // .error(error) .send()
  74. // },
  75. // }
  76. // }
  77. // }
  78. // }
  79. // }