auth_repository.dart 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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(String? email,
  13. String? password, {
  14. int country = 1,
  15. CancelToken? cancelToken,
  16. }) async {
  17. //Post请求
  18. Map<String, String> params = {};
  19. params['email'] = email ?? "";
  20. params['password'] = password ?? "";
  21. final result = await httpProvider.requestNetResult(
  22. method: HttpMethod.POST,
  23. country == 1
  24. ? ApiConstants.apiAuthLoginV2 //新加坡
  25. : country == 3
  26. ? ApiConstants.apiLoginMS //马来
  27. : country == 5
  28. ? ApiConstants.apiLoginTH //泰国
  29. : ApiConstants.apiUserLogin,
  30. //通用
  31. params: params,
  32. networkDebounce: true,
  33. isShowLoadingDialog: true,
  34. cancelToken: cancelToken,
  35. );
  36. //根据返回的结果,封装原始数据为Bean/Entity对象
  37. if (result.isSuccess) {
  38. final json = result.getDataJson();
  39. var data = HotelInfoEntity.fromJson(json!);
  40. //重新赋值data
  41. return result.convert<HotelInfoEntity>(data: data);
  42. }
  43. return result.convert<HotelInfoEntity>();
  44. }
  45. /// 退出登录
  46. Future<HttpResult> userLogout({
  47. required int country,
  48. CancelToken? cancelToken,
  49. }) async {
  50. final result = await httpProvider.requestNetResult(
  51. country == 3 ? ApiConstants.apiUserLogoutMS : ApiConstants.apiUserLogout,
  52. method: HttpMethod.GET,
  53. networkDebounce: true,
  54. isShowLoadingDialog: true,
  55. cancelToken: cancelToken,
  56. );
  57. //根据返回的结果,封装原始数据为Bean/Entity对象
  58. if (result.isSuccess) {
  59. //重新赋值data或list
  60. return result.convert();
  61. }
  62. return result.convert();
  63. }
  64. /// 修改密码
  65. Future<HttpResult> resetPassword(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. : country == 5
  97. ? ApiConstants.apiAccountInfoTH //泰国
  98. : ApiConstants.apiHotelInfo,
  99. method: HttpMethod.GET,
  100. networkDebounce: true,
  101. );
  102. //根据返回的结果,封装原始数据为Bean/Entity对象
  103. if (result.isSuccess) {
  104. //重新赋值data或list
  105. final json = result.getDataJson();
  106. var data = HotelInfoEntity.fromJson(json!);
  107. //重新赋值data或list
  108. return result.convert<HotelInfoEntity>(data: data);
  109. }
  110. return result.convert();
  111. }
  112. /// 酒店用户注册
  113. Future<HttpResult> hotelRegister(String? email,
  114. String? password,
  115. String? confirmPassword, {
  116. CancelToken? cancelToken,
  117. }) async {
  118. //参数
  119. Map<String, String> params = {};
  120. params['email'] = email ?? "";
  121. params['password'] = password ?? "";
  122. params['password_confirmation'] = confirmPassword ?? "";
  123. final result = await httpProvider.requestNetResult(
  124. ApiConstants.apiHotelRegister,
  125. method: HttpMethod.POST,
  126. params: params,
  127. networkDebounce: true,
  128. isShowLoadingDialog: true,
  129. cancelToken: cancelToken,
  130. );
  131. //根据返回的结果,封装原始数据为Bean/Entity对象
  132. if (result.isSuccess) {
  133. //重新赋值data或list
  134. return result.convert();
  135. }
  136. return result.convert();
  137. }
  138. /// 酒店用户注销
  139. Future<HttpResult> hotelDeactivate({
  140. CancelToken? cancelToken,
  141. }) async {
  142. final result = await httpProvider.requestNetResult(
  143. ApiConstants.apiHotelDeactivate,
  144. method: HttpMethod.POST,
  145. networkDebounce: true,
  146. isShowLoadingDialog: true,
  147. cancelToken: cancelToken,
  148. );
  149. //根据返回的结果,封装原始数据为Bean/Entity对象
  150. if (result.isSuccess) {
  151. //重新赋值data或list
  152. return result.convert();
  153. }
  154. return result.convert();
  155. }
  156. }