server_api.rs 2.8 KB

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