login_controller.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import 'package:get/get.dart';
  2. import 'package:naiyouwl/app/common/constants.dart';
  3. import 'package:naiyouwl/app/data/model/LoginMode.dart';
  4. import '../../../common/LogHelper.dart';
  5. import '../../../common/SharedPreferencesUtil.dart';
  6. import '../../../data/model/LocalUser.dart';
  7. import '../../../network/api_service.dart';
  8. import '../../../routes/app_pages.dart';
  9. class LoginController extends GetxController {
  10. final count = 0.obs;
  11. var isLoading = false.obs;
  12. var loginModes = LoginMode().obs;
  13. var localUsers = LocalUser().obs;
  14. var errorMsg = ''.obs;
  15. Future<void> fetchLogin(username,password) async {
  16. try {
  17. isLoading.value = true;
  18. loginModes.value = await ApiService().login(kLogin,data: {"email":username,"password":password});
  19. if(loginModes.value.accessToken != null){
  20. await SharedPreferencesUtil().setString("token", loginModes.value.accessToken.toString());
  21. var userModes = LocalUser(email: username,password: password,accessToken: loginModes.value.accessToken.toString());
  22. await SharedPreferencesUtil().setObject("localUser", userModes.toJson());
  23. }
  24. Get.offNamed(Routes.HOME,arguments: loginModes.value);
  25. } catch (e) {
  26. errorMsg.value = e.toString();
  27. } finally {
  28. isLoading.value = false;
  29. }
  30. }
  31. Future<void> fetchLocalUser() async {
  32. try {
  33. Map<String, dynamic>? data = await SharedPreferencesUtil().getObject("localUser");
  34. if(data != null){
  35. localUsers.value = LocalUser.fromJson(data);
  36. LogHelper().d(localUsers.value.toJson());
  37. }
  38. } catch (e) {
  39. errorMsg.value = e.toString();
  40. } finally {
  41. isLoading.value = false;
  42. }
  43. }
  44. @override
  45. void onInit() {
  46. super.onInit();
  47. fetchLocalUser();
  48. }
  49. @override
  50. void onReady() {
  51. super.onReady();
  52. }
  53. @override
  54. void onClose() {
  55. super.onClose();
  56. }
  57. void increment() => count.value++;
  58. String username() => localUsers.value.email.toString();
  59. String password() => localUsers.value.password.toString();
  60. String accToken() => localUsers.value.accessToken.toString();
  61. }