Não pode escolher mais do que 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.
 
 
 
 
 
 

151 linhas
4.1 KiB

  1. import 'package:flutter/material.dart';
  2. import 'package:qadirneyriz/models/home/home_models.dart';
  3. import 'package:qadirneyriz/services/home/home.dart';
  4. import 'package:qadirneyriz/utils/enums/status.dart';
  5. class HomeState extends ChangeNotifier {
  6. HomeApi homeApi = HomeApi();
  7. Status todayMettingsStatus = Status.empty;
  8. TodayMeetingModel? todayMeetingsModel;
  9. Future<Status> getTodayMeetings({bool refresh = false}) async {
  10. todayMettingsStatus = Status.loading;
  11. notifyListeners();
  12. if (refresh) {
  13. todayMettingsStatus = Status.loading;
  14. notifyListeners();
  15. }
  16. if (todayMeetingsModel != null) {
  17. todayMettingsStatus = Status.ready;
  18. try {
  19. todayMeetingsModel = await homeApi.getTodayMeetings();
  20. if (todayMeetingsModel != null) {
  21. todayMettingsStatus = Status.ready;
  22. } else {
  23. todayMettingsStatus = Status.empty;
  24. }
  25. } catch (e) {
  26. todayMettingsStatus = Status.error;
  27. }
  28. notifyListeners();
  29. } else {
  30. try {
  31. todayMeetingsModel = await homeApi.getTodayMeetings();
  32. if (todayMeetingsModel != null) {
  33. todayMettingsStatus = Status.ready;
  34. } else {
  35. todayMettingsStatus = Status.empty;
  36. }
  37. notifyListeners();
  38. } catch (e) {
  39. todayMettingsStatus = Status.error;
  40. }
  41. }
  42. notifyListeners();
  43. return todayMettingsStatus;
  44. }
  45. // log out
  46. Status statusLogOut = Status.empty;
  47. String? messageLogOut;
  48. Map? errorsLogOut;
  49. Future<Status> logOut() async {
  50. statusLogOut = Status.loading;
  51. notifyListeners();
  52. try {
  53. final result = await homeApi.logOutApi();
  54. if (result == null) {
  55. statusLogOut = Status.error;
  56. } else {
  57. if (result.isOk) {
  58. statusLogOut = Status.ready;
  59. messageLogOut = result.message;
  60. } else if (result.isOk == false) {
  61. errorsLogOut = result.errors;
  62. messageLogOut = result.message;
  63. statusLogOut = Status.error;
  64. } else {
  65. statusLogOut = Status.error;
  66. }
  67. }
  68. notifyListeners();
  69. } catch (e) {
  70. statusLogOut = Status.error;
  71. // print(e);
  72. }
  73. notifyListeners();
  74. // print(statusLogOut);
  75. return statusLogOut;
  76. }
  77. // delete account
  78. Status statusDeleteAccount = Status.empty;
  79. String? messageDeleteAccount;
  80. Map? errorsDeleteAccount;
  81. Future<Status> deleteAccount() async {
  82. statusDeleteAccount = Status.loading;
  83. notifyListeners();
  84. try {
  85. final result = await homeApi.deleteAccountApi();
  86. if (result == null) {
  87. statusDeleteAccount = Status.error;
  88. } else {
  89. if (result.isOk) {
  90. statusDeleteAccount = Status.ready;
  91. messageDeleteAccount = result.message;
  92. } else if (result.isOk == false) {
  93. errorsDeleteAccount = result.errors;
  94. messageDeleteAccount = result.message;
  95. statusDeleteAccount = Status.error;
  96. } else {
  97. statusDeleteAccount = Status.error;
  98. }
  99. }
  100. notifyListeners();
  101. } catch (e) {
  102. statusDeleteAccount = Status.error;
  103. // print(e);
  104. }
  105. notifyListeners();
  106. // print(statusLogOut);
  107. return statusDeleteAccount;
  108. }
  109. // edit profile
  110. Status statusEditProfile = Status.empty;
  111. String? messageEditProfile;
  112. Map? errorsEditProfile;
  113. Future<Status> editProfile({String? name, String? pass}) async {
  114. statusEditProfile = Status.loading;
  115. notifyListeners();
  116. try {
  117. final result = await homeApi.editProfile(name: name, password: pass);
  118. if (result == null) {
  119. statusEditProfile = Status.error;
  120. } else {
  121. if (result.isOk) {
  122. statusEditProfile = Status.ready;
  123. messageEditProfile = result.message;
  124. } else if (result.isOk == false) {
  125. errorsEditProfile = result.errors;
  126. messageEditProfile = result.message;
  127. statusEditProfile = Status.error;
  128. } else {
  129. statusEditProfile = Status.error;
  130. }
  131. }
  132. notifyListeners();
  133. } catch (e) {
  134. statusEditProfile = Status.error;
  135. // print(e);
  136. }
  137. notifyListeners();
  138. // print(statusEditProfile);
  139. return statusEditProfile;
  140. }
  141. }