log_in_model.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // ignore_for_file: constant_identifier_names, use_build_context_synchronously
  2. import 'package:flutter/foundation.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:gozap_package/components/apiservices.dart';
  5. import 'package:gozap_package/models/user/user_model.dart';
  6. import 'package:provider/provider.dart';
  7. enum LogInModelStatus {
  8. Ended,
  9. Loading,
  10. Error,
  11. }
  12. class LogInModel extends ChangeNotifier {
  13. late LogInModelStatus _status;
  14. late String _errorCode;
  15. late String _errorMessage;
  16. String get errorCode => _errorCode;
  17. String get errorMessage => _errorMessage;
  18. LogInModelStatus get status => _status;
  19. LogInModel();
  20. LogInModel.instance(BuildContext context, Widget nextScreen) {
  21. // ignore: todo
  22. //TODO Add code here
  23. getter(context,nextScreen:nextScreen);
  24. }
  25. Future<void> getter(BuildContext context,{Widget? nextScreen}) async {
  26. _status = LogInModelStatus.Loading;
  27. notifyListeners();
  28. await Provider.of<userChangeNotifier>(context, listen: false).get(context);
  29. UserModule? user= Provider.of<userChangeNotifier>(context, listen: false).user;
  30. if (user!=null) {
  31. Navigator.pushReplacement(
  32. context,
  33. MaterialPageRoute(
  34. builder: (context) =>nextScreen!));
  35. }
  36. _status = LogInModelStatus.Ended;
  37. notifyListeners();
  38. }
  39. Future<void> setter(BuildContext context,
  40. {Map<String, dynamic>? data, required Widget nextScreen}) async {
  41. _status = LogInModelStatus.Loading;
  42. notifyListeners();
  43. try {
  44. var resdata = await APIService(context).postData(
  45. "User/login.php",
  46. {
  47. "phonenumber": data!["phonenumber"],
  48. "password": data["password"],
  49. },
  50. false);
  51. if (resdata != null) {
  52. UserModule userModule = UserModule.fromJson(resdata);
  53. await Provider.of<userChangeNotifier>(context, listen: false)
  54. .set(context, userModule, false, nextScreen);
  55. }
  56. } catch (e) {
  57. if (kDebugMode) {
  58. print(e);
  59. }
  60. }
  61. _status = LogInModelStatus.Ended;
  62. notifyListeners();
  63. }
  64. void update() {
  65. _status = LogInModelStatus.Loading;
  66. notifyListeners();
  67. // ignore: todo
  68. //TODO Add code here
  69. _status = LogInModelStatus.Ended;
  70. notifyListeners();
  71. }
  72. void remove() {
  73. _status = LogInModelStatus.Loading;
  74. notifyListeners();
  75. // ignore: todo
  76. //TODO Add code here
  77. _status = LogInModelStatus.Ended;
  78. notifyListeners();
  79. }
  80. }