api_repository.dart 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. import 'dart:io';
  2. import 'package:ftrecruiter/api/api_provider.dart';
  3. import 'package:ftrecruiter/api/http_result.dart';
  4. import 'package:ftrecruiter/comm/constants/api_constants.dart';
  5. import 'package:ftrecruiter/comm/utils/log_utils.dart';
  6. import 'package:ftrecruiter/entity/response/UserLogin.dart';
  7. import 'package:ftrecruiter/entity/response/hotel_login.dart';
  8. import 'package:ftrecruiter/entity/response/industry_data.dart';
  9. import 'package:ftrecruiter/entity/response/server_time.dart';
  10. import 'package:ftrecruiter/entity/response/user_profile.dart';
  11. import 'package:get/get.dart';
  12. class ApiRepository {
  13. ApiProvider apiProvider;
  14. ApiRepository({required this.apiProvider});
  15. // //获取服务器时间
  16. // void getServerTime({NetSuccessCallback<ServerTime>? success, NetErrorCallback? onError}) {
  17. // Map<String, String> headers = {};
  18. // headers["Accept"] = "application/x.yyjobs-api.v1+json";
  19. //
  20. // //获取数据和处理数据的逻辑放在这里
  21. // apiProvider.requestNetEasy(ApiConstants.apiServiceTime, headers: headers, onSuccess: (json) {
  22. // var serverTime = ServerTime.fromJson(json);
  23. // if (success != null) {
  24. // success(serverTime);
  25. // }
  26. // }, onError: onError);
  27. // }
  28. //获取服务器时间2
  29. Future<HttpResult<ServerTime?>> getServerTime2() async {
  30. Map<String, String> headers = {};
  31. headers["Accept"] = "application/x.yyjobs-api.v1+json";
  32. //网络请求获取原始数据
  33. final result = await apiProvider.requestNetResult(ApiConstants.apiServiceTime, headers: headers);
  34. //根据返回的结果,封装原始数据为Bean/Entity对象
  35. if (result.isSuccess) {
  36. final json = result.getDataJson();
  37. var data = ServerTime.fromJson(json!);
  38. //重新赋值data或list
  39. return result.convert<ServerTime?>(data: data);
  40. }
  41. return result.convert<ServerTime?>();
  42. }
  43. /// 获取行业列表
  44. Future<HttpResult<IndustryData?>> getIndustryList2() async {
  45. Map<String, String> headers = {};
  46. headers["Accept"] = "application/x.yyjobs-api.v1+json";
  47. final result = await apiProvider.requestNetResult(ApiConstants.apiIndustryList, headers: headers);
  48. if (result.isSuccess) {
  49. final jsonList = result.getListJson();
  50. //获取List数据 需要转换一次
  51. var list = jsonList?.map((value) {
  52. if (value is Map<String, dynamic>) {
  53. return IndustryData.fromJson(value);
  54. } else {
  55. return null;
  56. }
  57. }).toList();
  58. return result.convert<IndustryData?>(list: list);
  59. }
  60. return result.convert<IndustryData>();
  61. }
  62. //获取用户信息
  63. Future<HttpResult<UserProfile?>> getUserProfile(String? token) async {
  64. Map<String, String> headers = {};
  65. headers["Accept"] = "application/x.yyjobs-api.v1+json";
  66. headers["Authorization"] = "bearer$token";
  67. var result = await apiProvider.requestNetResult(ApiConstants.apiUserProfile, headers: headers);
  68. //根据返回的结果,封装原始数据为Bean/Entity对象
  69. if (result.isSuccess) {
  70. final json = result.getDataJson();
  71. var data = UserProfile.fromJson(json!);
  72. //重新赋值data或list
  73. return result.convert<UserProfile?>(data: data);
  74. }
  75. return result.convert<UserProfile?>();
  76. }
  77. //用户登陆
  78. Future<HttpResult<UserLogin?>> userLogin() async {
  79. Map<String, String> headers = {};
  80. headers["Accept"] = "application/x.yyjobs-api.v1+json";
  81. Map<String, String> params = {};
  82. params["nric_no"] = "+8618571458165";
  83. params["password"] = "12345678";
  84. params["registration_id"] = "1234";
  85. apiProvider = apiProvider.cancelAndResetHttpClient();
  86. var result = await apiProvider.requestNetResult(ApiConstants.apiUserLogin,
  87. method: HttpMethod.POST, headers: headers, query: params);
  88. //根据返回的结果,封装原始数据为Bean/Entity对象
  89. if (result.isSuccess) {
  90. final json = result.getDataJson();
  91. var data = UserLogin.fromJson(json!);
  92. //重新赋值data或list
  93. return result.convert<UserLogin?>(data: data);
  94. }
  95. return result.convert<UserLogin?>();
  96. }
  97. //更新用户信息
  98. Future<HttpResult<UserLogin?>> userProfileUpdate(String? token) async {
  99. Map<String, String> headers = {};
  100. headers["Accept"] = "application/x.yyjobs-api.v12+json";
  101. headers["Authorization"] = "bearer$token";
  102. Map<String, String> params = {};
  103. params["mobile_no"] = "+8618571458166";
  104. params["verification_code"] = "123456 ";
  105. params["nick_name"] = "test liukai";
  106. Map<String, String> paths = {};
  107. paths['news_feed_avatar'] = '/data/user/0/com.hongyegroup.ftrecruiter/app_flutter/test_avatar.jpeg';
  108. var result = await apiProvider.requestNetResult(
  109. ApiConstants.apiUpdateProfile,
  110. method: HttpMethod.POST,
  111. headers: headers,
  112. query: params,
  113. paths: paths,
  114. );
  115. //根据返回的结果,封装原始数据为Bean/Entity对象
  116. if (result.isSuccess) {
  117. final json = result.getDataJson();
  118. var data = UserLogin.fromJson(json!);
  119. //重新赋值data或list
  120. return result.convert<UserLogin?>(data: data);
  121. }
  122. return result.convert<UserLogin?>();
  123. }
  124. //用户登陆(回调的方式)
  125. void userLoginEasy({NetSuccessCallback<UserLogin>? success, NetErrorCallback? onError}) {
  126. Map<String, String> headers = {};
  127. headers["Accept"] = "application/x.yyjobs-api.v1+json";
  128. Map<String, String> params = {};
  129. params["nric_no"] = "+8618571458166";
  130. params["password"] = "12345678";
  131. params["registration_id"] = "1234";
  132. apiProvider.requestNetEasy(ApiConstants.apiUserLogin, method: HttpMethod.POST, headers: headers, query: params,
  133. onSuccess: (json) {
  134. var userLogin = UserLogin.fromJson(json);
  135. if (success != null) {
  136. success(userLogin);
  137. }
  138. }, onError: onError);
  139. }
  140. }