Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

95 строки
2.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, password: password, otp: otp, );
  30. if (result == null) {
  31. statusLogin = Status.error;
  32. } else {
  33. if (result.isOk) {
  34. statusLogin = Status.ready;
  35. messageLogin = result.message;
  36. } else if (result.isOk == false) {
  37. errorsLogin = result.errors;
  38. messageLogin = result.message;
  39. statusLogin = Status.error;
  40. } else {
  41. statusLogin = Status.error;
  42. }
  43. notifyListeners();
  44. }
  45. notifyListeners();
  46. } catch (e) {
  47. statusLogin = Status.error;
  48. }
  49. notifyListeners();
  50. return statusLogin;
  51. }
  52. Status statusSendotp = Status.empty;
  53. String? messageSendOtp;
  54. Map? errorsSendOtp;
  55. Future<Status> sendOtp({
  56. required String mobile,
  57. }) async {
  58. statusSendotp = Status.loading;
  59. notifyListeners();
  60. try {
  61. final result = await authServises.sendOtpApi(mobile: mobile);
  62. if (result == null) {
  63. statusSendotp = Status.error;
  64. } else {
  65. // print(result);
  66. if (result.isOk) {
  67. statusSendotp = Status.ready;
  68. messageSendOtp = result.message;
  69. } else if (result.isOk == false) {
  70. errorsSendOtp = result.errors;
  71. messageSendOtp = result.message;
  72. statusSendotp = Status.error;
  73. } else {
  74. statusSendotp = Status.error;
  75. }
  76. notifyListeners();
  77. }
  78. notifyListeners();
  79. } catch (e) {
  80. statusSendotp = Status.error;
  81. // print(e);
  82. }
  83. notifyListeners();
  84. // print(statusSendotp);
  85. return statusSendotp;
  86. }
  87. }