import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; import 'package:mc_common_app/models/requests_models/offers_model.dart'; import 'package:mc_common_app/models/requests_models/request_model.dart'; abstract class RequestRepo { Future createRequest(Map map); Future> getOffersByRequest({required int requestId, int serviceProviderId = 0}); Future> getRequests(Map postParams); } class RequestRepoImp implements RequestRepo { ApiClient apiClient = injector.get(); AppState appState = injector.get(); @override Future createRequest(Map postParams) async { GenericRespModel enumGenericModel = await apiClient.postJsonForObject( (json) => GenericRespModel.fromJson(json), ApiConsts.createRequest, postParams, token: appState.getUser.data!.accessToken, ); return enumGenericModel; } @override Future> getRequests(Map postParams) async { GenericRespModel enumGenericModel = await apiClient.postJsonForObject( (json) => GenericRespModel.fromJson(json), ApiConsts.getRequest, postParams, token: appState.getUser.data!.accessToken, ); List requests = List.generate( enumGenericModel.data.length, (index) => RequestModel.fromJson( enumGenericModel.data[index], ), ); return requests; } @override Future> getOffersByRequest({required int requestId, int serviceProviderId = 0}) async { var queryParameters = { "RequestID": requestId.toString(), "ServiceProviderID": serviceProviderId.toString(), }; GenericRespModel genericRespModel = await apiClient.getJsonForObject( (json) => GenericRespModel.fromJson(json), ApiConsts.getRequestOffers, queryParameters: queryParameters, token: appState.getUser.data!.accessToken, ); List offersList = List.generate( genericRespModel.data.length, (index) => OffersModel.fromJson( genericRespModel.data[index], ), ); return offersList; } }