auth_repository.dart 4.8 KB

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