_login.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'package:chicken_farm/core/api/api_option.dart';
  2. import 'package:chicken_farm/core/api/api_service.dart';
  3. import 'package:chicken_farm/modes/auth/auth_model.dart';
  4. import 'package:chicken_farm/modes/auth/login_model.dart';
  5. import 'package:chicken_farm/modes/user/user_info_model.dart';
  6. class LoginApi {
  7. static final LoginApi _instance = LoginApi._internal();
  8. factory LoginApi() => _instance;
  9. LoginApi._internal();
  10. Future<AuthResultModel> login(LoginModel data) async {
  11. final result = await ApiService().post(
  12. '/auth/login',
  13. data: data,
  14. apiOption: ApiOption.noAlert(),
  15. );
  16. if (result.success && result.data != null) {
  17. return AuthResultModel.fromJson(result.data);
  18. } else {
  19. throw result.message;
  20. }
  21. }
  22. Future<AuthResultModel> refreshToken(String refreshToken) async {
  23. final result = await ApiService().post(
  24. '/auth/refreshToken',
  25. data: {"refreshToken": refreshToken},
  26. );
  27. if (result.success && result.data != null) {
  28. return AuthResultModel.fromJson(result.data);
  29. } else {
  30. throw result.message;
  31. }
  32. }
  33. Future<UserInfoModel?> getInfo() async {
  34. final result = await ApiService().get('/system/user/getInfo');
  35. if (result.success && result.data != null) {
  36. return UserInfoModel.fromJson(result.data);
  37. } else {
  38. return null;
  39. }
  40. }
  41. Future<void> logout() async {
  42. ApiService().post('/auth/logout', apiOption: ApiOption.noAlert());
  43. }
  44. }