login_controller.dart 2.1 KB

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