auth.rs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. use std::convert::TryInto;
  2. use flowy_derive::ProtoBuf;
  3. use crate::{errors::*, parser::*};
  4. #[derive(ProtoBuf, Default)]
  5. pub struct SignInPayload {
  6. #[pb(index = 1)]
  7. pub email: String,
  8. #[pb(index = 2)]
  9. pub password: String,
  10. #[pb(index = 3)]
  11. pub name: String,
  12. }
  13. #[derive(Default, ProtoBuf, Debug)]
  14. pub struct SignInParams {
  15. #[pb(index = 1)]
  16. pub email: String,
  17. #[pb(index = 2)]
  18. pub password: String,
  19. #[pb(index = 3)]
  20. pub name: String,
  21. }
  22. #[derive(Debug, Default, ProtoBuf, Clone)]
  23. pub struct SignInResponse {
  24. #[pb(index = 1)]
  25. pub user_id: String,
  26. #[pb(index = 2)]
  27. pub name: String,
  28. #[pb(index = 3)]
  29. pub email: String,
  30. #[pb(index = 4)]
  31. pub token: String,
  32. }
  33. impl TryInto<SignInParams> for SignInPayload {
  34. type Error = ErrorCode;
  35. fn try_into(self) -> Result<SignInParams, Self::Error> {
  36. let email = UserEmail::parse(self.email)?;
  37. let password = UserPassword::parse(self.password)?;
  38. Ok(SignInParams {
  39. email: email.0,
  40. password: password.0,
  41. name: self.name,
  42. })
  43. }
  44. }
  45. #[derive(ProtoBuf, Default)]
  46. pub struct SignUpPayload {
  47. #[pb(index = 1)]
  48. pub email: String,
  49. #[pb(index = 2)]
  50. pub name: String,
  51. #[pb(index = 3)]
  52. pub password: String,
  53. }
  54. impl TryInto<SignUpParams> for SignUpPayload {
  55. type Error = ErrorCode;
  56. fn try_into(self) -> Result<SignUpParams, Self::Error> {
  57. let email = UserEmail::parse(self.email)?;
  58. let password = UserPassword::parse(self.password)?;
  59. let name = UserName::parse(self.name)?;
  60. Ok(SignUpParams {
  61. email: email.0,
  62. name: name.0,
  63. password: password.0,
  64. })
  65. }
  66. }
  67. #[derive(ProtoBuf, Default, Debug)]
  68. pub struct SignUpParams {
  69. #[pb(index = 1)]
  70. pub email: String,
  71. #[pb(index = 2)]
  72. pub name: String,
  73. #[pb(index = 3)]
  74. pub password: String,
  75. }
  76. #[derive(ProtoBuf, Debug, Default, Clone)]
  77. pub struct SignUpResponse {
  78. #[pb(index = 1)]
  79. pub user_id: String,
  80. #[pb(index = 2)]
  81. pub name: String,
  82. #[pb(index = 3)]
  83. pub email: String,
  84. #[pb(index = 4)]
  85. pub token: String,
  86. }