Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

135 linhas
3.5 KiB

  1. import 'package:flutter/material.dart';
  2. import 'package:qadirneyriz/services/auth/auth.dart';
  3. import 'package:qadirneyriz/setting/setting.dart';
  4. import 'package:qadirneyriz/utils/enums/status.dart';
  5. class AuthState extends ChangeNotifier {
  6. /// set and fetch language
  7. String language = setting.userLocalDb.getUser().language;
  8. Future<void> setLocale(String newLanguage) async {
  9. language = newLanguage;
  10. await setting.userLocalDb.saveUserField('language', newLanguage);
  11. notifyListeners();
  12. }
  13. // auth seviceses class
  14. AuthServices authServises = AuthServices();
  15. // login funtinulity
  16. Status statusLogin = Status.empty;
  17. String? messageLogin;
  18. Map? errorsLogin;
  19. Future<Status> login({
  20. required String mobile,
  21. String? password,
  22. String? otp,
  23. }) async {
  24. assert(password != null || otp != null);
  25. statusLogin = Status.loading;
  26. notifyListeners();
  27. try {
  28. final result = await authServises.loginApi(
  29. mobile: mobile,
  30. password: password,
  31. otp: otp,
  32. );
  33. if (result == null) {
  34. statusLogin = Status.error;
  35. } else {
  36. if (result.isOk) {
  37. statusLogin = Status.ready;
  38. messageLogin = result.message;
  39. } else if (result.isOk == false) {
  40. errorsLogin = result.errors;
  41. messageLogin = result.message;
  42. statusLogin = Status.error;
  43. } else {
  44. statusLogin = Status.error;
  45. }
  46. notifyListeners();
  47. }
  48. notifyListeners();
  49. } catch (e) {
  50. statusLogin = Status.error;
  51. }
  52. notifyListeners();
  53. return statusLogin;
  54. }
  55. Status statusSendotp = Status.empty;
  56. String? messageSendOtp;
  57. Map? errorsSendOtp;
  58. Future<Status> sendOtp({
  59. required String mobile,
  60. }) async {
  61. statusSendotp = Status.loading;
  62. notifyListeners();
  63. try {
  64. final result = await authServises.sendOtpApi(mobile: mobile);
  65. if (result == null) {
  66. statusSendotp = Status.error;
  67. } else {
  68. // print(result);
  69. if (result.isOk) {
  70. statusSendotp = Status.ready;
  71. messageSendOtp = result.message;
  72. } else if (result.isOk == false) {
  73. errorsSendOtp = result.errors;
  74. messageSendOtp = result.message;
  75. statusSendotp = Status.error;
  76. } else {
  77. statusSendotp = Status.error;
  78. }
  79. notifyListeners();
  80. }
  81. notifyListeners();
  82. } catch (e) {
  83. statusSendotp = Status.error;
  84. // print(e);
  85. }
  86. notifyListeners();
  87. // print(statusSendotp);
  88. return statusSendotp;
  89. }
  90. // check login
  91. Status statusCheckLogin = Status.empty;
  92. String? messageCheckLogin;
  93. Map? errorsCheckLogin;
  94. Future<Status> CheckLogin() async {
  95. statusCheckLogin = Status.loading;
  96. notifyListeners();
  97. try {
  98. final result = await authServises.checkLoginApi();
  99. if (result == null) {
  100. statusCheckLogin = Status.error;
  101. } else {
  102. // print(result);
  103. if (result.isOk) {
  104. statusCheckLogin = Status.ready;
  105. messageCheckLogin = result.message;
  106. } else if (result.isOk == false) {
  107. errorsCheckLogin = result.errors;
  108. messageCheckLogin = result.message;
  109. statusCheckLogin = Status.error;
  110. } else {
  111. statusCheckLogin = Status.error;
  112. }
  113. notifyListeners();
  114. }
  115. notifyListeners();
  116. } catch (e) {
  117. statusCheckLogin = Status.error;
  118. // print(e);
  119. }
  120. notifyListeners();
  121. // print(statusCheckLogin);
  122. return statusCheckLogin;
  123. }
  124. }