auth_handler.rs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. use crate::{entities::*, errors::UserError, services::user_session::UserSession};
  2. use flowy_dispatch::prelude::*;
  3. use std::{convert::TryInto, sync::Arc};
  4. // tracing instrument 👉🏻 https://docs.rs/tracing/0.1.26/tracing/attr.instrument.html
  5. #[tracing::instrument(
  6. name = "user_sign_in",
  7. skip(data, session),
  8. fields(
  9. email = %data.email,
  10. )
  11. )]
  12. pub async fn user_sign_in_handler(
  13. data: Data<SignInRequest>,
  14. session: ModuleData<Arc<UserSession>>,
  15. ) -> ResponseResult<UserDetail, UserError> {
  16. let params: SignInParams = data.into_inner().try_into()?;
  17. let user = session.sign_in(params).await?;
  18. let user_detail = UserDetail::from(user);
  19. response_ok(user_detail)
  20. }
  21. #[tracing::instrument(
  22. name = "user_sign_up",
  23. skip(data, session),
  24. fields(
  25. email = %data.email,
  26. name = %data.name,
  27. )
  28. )]
  29. pub async fn user_sign_up_handler(
  30. data: Data<SignUpRequest>,
  31. session: ModuleData<Arc<UserSession>>,
  32. ) -> ResponseResult<UserDetail, UserError> {
  33. let params: SignUpParams = data.into_inner().try_into()?;
  34. let user = session.sign_up(params).await?;
  35. let user_detail = UserDetail::from(user);
  36. response_ok(user_detail)
  37. }