user_handler.rs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. use crate::{entities::*, errors::UserError, services::user::UserSession};
  2. use lib_dispatch::prelude::*;
  3. use std::{convert::TryInto, sync::Arc};
  4. #[tracing::instrument(skip(session))]
  5. pub async fn init_user_handler(session: Unit<Arc<UserSession>>) -> Result<(), UserError> {
  6. let _ = session.init_user().await?;
  7. Ok(())
  8. }
  9. #[tracing::instrument(skip(session))]
  10. pub async fn check_user_handler(session: Unit<Arc<UserSession>>) -> DataResult<UserProfile, UserError> {
  11. let user_profile = session.check_user().await?;
  12. data_result(user_profile)
  13. }
  14. #[tracing::instrument(skip(session))]
  15. pub async fn get_user_profile_handler(session: Unit<Arc<UserSession>>) -> DataResult<UserProfile, UserError> {
  16. let user_profile = session.user_profile().await?;
  17. data_result(user_profile)
  18. }
  19. #[tracing::instrument(name = "sign_out", skip(session))]
  20. pub async fn sign_out(session: Unit<Arc<UserSession>>) -> Result<(), UserError> {
  21. let _ = session.sign_out().await?;
  22. Ok(())
  23. }
  24. #[tracing::instrument(name = "update_user", skip(data, session))]
  25. pub async fn update_user_handler(
  26. data: Data<UpdateUserRequest>,
  27. session: Unit<Arc<UserSession>>,
  28. ) -> Result<(), UserError> {
  29. let params: UpdateUserParams = data.into_inner().try_into()?;
  30. session.update_user(params).await?;
  31. Ok(())
  32. }