auth_repository.dart 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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 country = 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. country == 1
  25. ? ApiConstants.apiAuthLoginV2 //新加坡
  26. : country == 3
  27. ? ApiConstants.apiLoginMS //马来
  28. : ApiConstants.apiUserLogin,
  29. //通用
  30. params: params,
  31. networkDebounce: true,
  32. isShowLoadingDialog: true,
  33. cancelToken: cancelToken,
  34. );
  35. //根据返回的结果,封装原始数据为Bean/Entity对象
  36. if (result.isSuccess) {
  37. final json = result.getDataJson();
  38. var data = HotelInfoEntity.fromJson(json!);
  39. //重新赋值data
  40. return result.convert<HotelInfoEntity>(data: data);
  41. }
  42. return result.convert<HotelInfoEntity>();
  43. }
  44. /// 退出登录
  45. Future<HttpResult> userLogout({
  46. required int country,
  47. CancelToken? cancelToken,
  48. }) async {
  49. final result = await httpProvider.requestNetResult(
  50. country == 3 ? ApiConstants.apiUserLogoutMS : ApiConstants.apiUserLogout,
  51. method: HttpMethod.GET,
  52. networkDebounce: true,
  53. isShowLoadingDialog: true,
  54. cancelToken: cancelToken,
  55. );
  56. //根据返回的结果,封装原始数据为Bean/Entity对象
  57. if (result.isSuccess) {
  58. //重新赋值data或list
  59. return result.convert();
  60. }
  61. return result.convert();
  62. }
  63. /// 修改密码
  64. Future<HttpResult> resetPassword(
  65. String? oldPassword,
  66. String? password,
  67. String? confirmPassword, {
  68. CancelToken? cancelToken,
  69. }) async {
  70. Map<String, String> params = {};
  71. params['old_password'] = oldPassword ?? "";
  72. params['password'] = password ?? "";
  73. params['password_confirmation'] = confirmPassword ?? "";
  74. final result = await httpProvider.requestNetResult(
  75. ApiConstants.apiResetPassword,
  76. method: HttpMethod.POST,
  77. params: params,
  78. networkDebounce: true,
  79. isShowLoadingDialog: true,
  80. cancelToken: cancelToken,
  81. );
  82. //根据返回的结果,封装原始数据为Bean/Entity对象
  83. if (result.isSuccess) {
  84. //重新赋值data或list
  85. return result.convert();
  86. }
  87. return result.convert();
  88. }
  89. /// 获取酒店信息
  90. Future<HttpResult<HotelInfoEntity>> fetchHotelInfo({required int country}) async {
  91. final result = await httpProvider.requestNetResult(
  92. country == 1
  93. ? ApiConstants.apiHotelInfoV2 //新加坡
  94. : country == 3
  95. ? ApiConstants.apiAccountInfoMS //马来
  96. : ApiConstants.apiHotelInfo,
  97. method: HttpMethod.GET,
  98. networkDebounce: true,
  99. );
  100. //根据返回的结果,封装原始数据为Bean/Entity对象
  101. if (result.isSuccess) {
  102. //重新赋值data或list
  103. final json = result.getDataJson();
  104. var data = HotelInfoEntity.fromJson(json!);
  105. //重新赋值data或list
  106. return result.convert<HotelInfoEntity>(data: data);
  107. }
  108. return result.convert();
  109. }
  110. /// 酒店用户注册
  111. Future<HttpResult> hotelRegister(
  112. String? email,
  113. String? password,
  114. String? confirmPassword, {
  115. CancelToken? cancelToken,
  116. }) async {
  117. //参数
  118. Map<String, String> params = {};
  119. params['email'] = email ?? "";
  120. params['password'] = password ?? "";
  121. params['password_confirmation'] = confirmPassword ?? "";
  122. final result = await httpProvider.requestNetResult(
  123. ApiConstants.apiHotelRegister,
  124. method: HttpMethod.POST,
  125. params: params,
  126. networkDebounce: true,
  127. isShowLoadingDialog: true,
  128. cancelToken: cancelToken,
  129. );
  130. //根据返回的结果,封装原始数据为Bean/Entity对象
  131. if (result.isSuccess) {
  132. //重新赋值data或list
  133. return result.convert();
  134. }
  135. return result.convert();
  136. }
  137. /// 酒店用户注销
  138. Future<HttpResult> hotelDeactivate({
  139. CancelToken? cancelToken,
  140. }) async {
  141. final result = await httpProvider.requestNetResult(
  142. ApiConstants.apiHotelDeactivate,
  143. method: HttpMethod.POST,
  144. networkDebounce: true,
  145. isShowLoadingDialog: true,
  146. cancelToken: cancelToken,
  147. );
  148. //根据返回的结果,封装原始数据为Bean/Entity对象
  149. if (result.isSuccess) {
  150. //重新赋值data或list
  151. return result.convert();
  152. }
  153. return result.convert();
  154. }
  155. }