auth_handler.rs 1.0 KB

123456789101112131415161718192021222324252627
  1. use crate::{entities::*, errors::UserError, services::user::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(name = "sign_in", skip(data, session), fields(email = %data.email), err)]
  6. pub async fn sign_in(data: Data<SignInRequest>, session: Unit<Arc<UserSession>>) -> DataResult<UserProfile, UserError> {
  7. let params: SignInParams = data.into_inner().try_into()?;
  8. let user_profile = session.sign_in(params).await?;
  9. data_result(user_profile)
  10. }
  11. #[tracing::instrument(
  12. name = "sign_up",
  13. skip(data, session),
  14. fields(
  15. email = %data.email,
  16. name = %data.name,
  17. ),
  18. err
  19. )]
  20. pub async fn sign_up(data: Data<SignUpRequest>, session: Unit<Arc<UserSession>>) -> DataResult<UserProfile, UserError> {
  21. let params: SignUpParams = data.into_inner().try_into()?;
  22. let user_profile = session.sign_up(params).await?;
  23. data_result(user_profile)
  24. }