import 'package:ftrecruiter/api/api_provider.dart'; import 'package:ftrecruiter/comm/constants/api_constants.dart'; import 'package:ftrecruiter/entity/response/industry_data.dart'; import 'package:ftrecruiter/entity/response/server_time.dart'; import 'package:ftrecruiter/entity/response/user_login.dart'; import 'package:ftrecruiter/entity/response/user_profile.dart'; class ApiRepository { final ApiProvider apiProvider; ApiRepository({required this.apiProvider}); //获取服务器时间 void getServerTime({NetSuccessCallback? success, NetErrorCallback? onError}) { Map headers = {}; headers["Accept"] = "application/x.yyjobs-api.v1+json"; //获取数据和处理数据的逻辑放在这里 apiProvider.requestNetwork(ApiConstants.apiServiceTime, headers: headers, onSuccess: (json) { var serverTime = ServerTime.fromJson(json); if (success != null) { success(serverTime); } }, onError: onError); } //获取用户信息 void getUserProfile({NetSuccessCallback? success, NetErrorCallback? onError}) { Map headers = {}; headers["Accept"] = "application/x.yyjobs-api.v1+json"; apiProvider.requestNetwork(ApiConstants.apiUserProfile, headers: headers, onSuccess: (json) { var userProfile = UserProfile.fromJson(json); if (success != null) { success(userProfile); } }, onError: onError); } //获取行业列表 void getIndustryList({NetSuccessListCallback>? success, NetErrorCallback? onError}) { Map headers = {}; headers["Accept"] = "application/x.yyjobs-api.v1+json"; apiProvider.requestNetwork(ApiConstants.apiIndustryList, headers: headers, onSuccessList: (jsonList) { //获取List数据 需要转换一次 var industryList = jsonList.map((value) { if (value is Map) { return IndustryData.fromJson(value); } else { return null; } }).toList(); if (success != null) { success(industryList); } }, onError: onError); } //用户登陆 void userLogin({NetSuccessCallback? success, NetErrorCallback? onError}) { Map headers = {}; headers["Accept"] = "application/x.yyjobs-api.v1+json"; Map params = {}; params["nric_no"] = "+8618571458165"; params["password"] = "12345678"; params["registration_id"] = "1234"; apiProvider.requestNetwork(ApiConstants.apiUserLogin, method: HttpMethod.POST, headers: headers, query: params, onSuccess: (json) { var userLogin = UserLogin.fromJson(json); if (success != null) { success(userLogin); } }, onError: onError); } }