No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

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