auth_repository.dart 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. import 'package:domain/entity/response/hotel_info_entity.dart';
  2. import 'package:get/get.dart';
  3. import 'package:plugin_platform/platform_export.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import 'package:plugin_platform/http/http_result.dart';
  6. import '../constants/api_constants.dart';
  7. /// 用户相关
  8. class AuthRepository extends GetxService {
  9. HttpProvider httpProvider;
  10. AuthRepository({required this.httpProvider});
  11. /// 酒店登录
  12. Future<HttpResult<HotelInfoEntity>> userLogin(
  13. String? email,
  14. String? password, {
  15. int version = 1,
  16. CancelToken? cancelToken,
  17. }) async {
  18. //Post请求
  19. Map<String, String> params = {};
  20. params['email'] = email ?? "";
  21. params['password'] = password ?? "";
  22. final result = await httpProvider.requestNetResult(
  23. method: HttpMethod.POST,
  24. version == 2 ? ApiConstants.apiAuthLoginV2 : ApiConstants.apiUserLogin,
  25. params: params,
  26. networkDebounce: true,
  27. isShowLoadingDialog: true,
  28. cancelToken: cancelToken,
  29. );
  30. //根据返回的结果,封装原始数据为Bean/Entity对象
  31. if (result.isSuccess) {
  32. final json = result.getDataJson();
  33. var data = HotelInfoEntity.fromJson(json!);
  34. //重新赋值data
  35. return result.convert<HotelInfoEntity>(data: data);
  36. }
  37. return result.convert<HotelInfoEntity>();
  38. }
  39. /// 退出登录
  40. Future<HttpResult> userLogout({
  41. CancelToken? cancelToken,
  42. }) async {
  43. final result = await httpProvider.requestNetResult(
  44. ApiConstants.apiUserLogout,
  45. method: HttpMethod.GET,
  46. networkDebounce: true,
  47. isShowLoadingDialog: true,
  48. cancelToken: cancelToken,
  49. );
  50. //根据返回的结果,封装原始数据为Bean/Entity对象
  51. if (result.isSuccess) {
  52. //重新赋值data或list
  53. return result.convert();
  54. }
  55. return result.convert();
  56. }
  57. /// 修改密码
  58. Future<HttpResult> resetPassword(
  59. String? oldPassword,
  60. String? password,
  61. String? confirmPassword, {
  62. CancelToken? cancelToken,
  63. }) async {
  64. Map<String, String> params = {};
  65. params['old_password'] = oldPassword ?? "";
  66. params['password'] = password ?? "";
  67. params['password_confirmation'] = confirmPassword ?? "";
  68. final result = await httpProvider.requestNetResult(
  69. ApiConstants.apiResetPassword,
  70. method: HttpMethod.POST,
  71. params: params,
  72. networkDebounce: true,
  73. isShowLoadingDialog: true,
  74. cancelToken: cancelToken,
  75. );
  76. //根据返回的结果,封装原始数据为Bean/Entity对象
  77. if (result.isSuccess) {
  78. //重新赋值data或list
  79. return result.convert();
  80. }
  81. return result.convert();
  82. }
  83. /// 获取酒店信息
  84. Future<HttpResult<HotelInfoEntity>> fetchHotelInfo({int version = 1}) async {
  85. final result = await httpProvider.requestNetResult(
  86. version == 2 ? ApiConstants.apiHotelInfoV2 : ApiConstants.apiHotelInfo,
  87. method: HttpMethod.GET,
  88. networkDebounce: true,
  89. );
  90. //根据返回的结果,封装原始数据为Bean/Entity对象
  91. if (result.isSuccess) {
  92. //重新赋值data或list
  93. final json = result.getDataJson();
  94. var data = HotelInfoEntity.fromJson(json!);
  95. //重新赋值data或list
  96. return result.convert<HotelInfoEntity>(data: data);
  97. }
  98. return result.convert();
  99. }
  100. /// 酒店用户注册
  101. Future<HttpResult> hotelRegister(
  102. String? email,
  103. String? password,
  104. String? confirmPassword, {
  105. CancelToken? cancelToken,
  106. }) async {
  107. //参数
  108. Map<String, String> params = {};
  109. params['email'] = email ?? "";
  110. params['password'] = password ?? "";
  111. params['password_confirmation'] = confirmPassword ?? "";
  112. final result = await httpProvider.requestNetResult(
  113. ApiConstants.apiHotelRegister,
  114. method: HttpMethod.POST,
  115. params: params,
  116. networkDebounce: true,
  117. isShowLoadingDialog: true,
  118. cancelToken: cancelToken,
  119. );
  120. //根据返回的结果,封装原始数据为Bean/Entity对象
  121. if (result.isSuccess) {
  122. //重新赋值data或list
  123. return result.convert();
  124. }
  125. return result.convert();
  126. }
  127. /// 酒店用户注销
  128. Future<HttpResult> hotelDeactivate({
  129. CancelToken? cancelToken,
  130. }) async {
  131. final result = await httpProvider.requestNetResult(
  132. ApiConstants.apiHotelDeactivate,
  133. method: HttpMethod.POST,
  134. networkDebounce: true,
  135. isShowLoadingDialog: true,
  136. cancelToken: cancelToken,
  137. );
  138. //根据返回的结果,封装原始数据为Bean/Entity对象
  139. if (result.isSuccess) {
  140. //重新赋值data或list
  141. return result.convert();
  142. }
  143. return result.convert();
  144. }
  145. }