auth_repository.dart 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import 'package:get/get.dart';
  2. import 'package:plugin_platform/dio_export.dart';
  3. import 'package:plugin_platform/http/http_provider.dart';
  4. import 'package:plugin_platform/http/http_result.dart';
  5. import '../constants/api_constants.dart';
  6. import '../entity/response/user_login_entity.dart';
  7. import '../entity/response/user_profile.dart';
  8. /// 用户相关
  9. class AuthRepository extends GetxService {
  10. HttpProvider httpProvider;
  11. AuthRepository({required this.httpProvider});
  12. /// 用户登录
  13. Future<HttpResult<UserLoginEntity>> userLogin(
  14. String? code,
  15. String? password, {
  16. String? registerId,
  17. CancelToken? cancelToken,
  18. }) async {
  19. //Post请求
  20. Map<String, String> params = {};
  21. params['code'] = code ?? "";
  22. params['password'] = password ?? "";
  23. if (registerId != null && registerId.isNotEmpty) {
  24. params['register_id'] = registerId;
  25. }
  26. final result = await httpProvider.requestNetResult(
  27. method: HttpMethod.POST,
  28. ApiConstants.apiUserLogin,
  29. params: params,
  30. networkDebounce: true,
  31. isShowLoadingDialog: true,
  32. cancelToken: cancelToken,
  33. );
  34. //根据返回的结果,封装原始数据为Bean/Entity对象
  35. if (result.isSuccess) {
  36. final json = result.getDataJson();
  37. var data = UserLoginEntity.fromJson(json!);
  38. //重新赋值data
  39. return result.convert<UserLoginEntity>(data: data);
  40. }
  41. return result.convert<UserLoginEntity>();
  42. }
  43. /// 退出登录
  44. Future<HttpResult> userLogout(
  45. String? token, {
  46. CancelToken? cancelToken,
  47. }) async {
  48. Map<String, String> params = {};
  49. params['token'] = token ?? "";
  50. //POST请求
  51. final result = await httpProvider.requestNetResult(
  52. ApiConstants.apiUserLogout,
  53. method: HttpMethod.POST,
  54. params: params,
  55. networkDebounce: true,
  56. isShowLoadingDialog: true,
  57. cancelToken: cancelToken,
  58. );
  59. //根据返回的结果,封装原始数据为Bean/Entity对象
  60. if (result.isSuccess) {
  61. //重新赋值data或list
  62. return result.convert();
  63. }
  64. return result.convert();
  65. }
  66. /// 获取用户详情数据
  67. Future<HttpResult<UserProfile>> fetchUserProfile() async {
  68. //POST请求
  69. final result = await httpProvider.requestNetResult(
  70. ApiConstants.apiUserProfile,
  71. );
  72. //根据返回的结果,封装原始数据为Bean/Entity对象
  73. if (result.isSuccess) {
  74. //重新赋值data或list
  75. final json = result.getDataJson();
  76. var data = UserProfile.fromJson(json!);
  77. //重新赋值data或list
  78. return result.convert<UserProfile>(data: data);
  79. }
  80. return result.convert();
  81. }
  82. }