|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
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/generic_resp_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/provider_branches_models/provider_profile_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/services/item_model.dart';
|
|
|
|
|
|
|
|
|
|
abstract class ProviderRepo {
|
|
|
|
|
Future<List<BranchDetailModel>> getAllNearBranchAndServices();
|
|
|
|
|
|
|
|
|
|
Future<List<ItemData>> getServiceItems(int serviceId);
|
|
|
|
|
|
|
|
|
|
Future<ProviderProfileModel> getBranchAndServices(int providerId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ProviderRepoImp implements ProviderRepo {
|
|
|
|
|
ApiClient apiClient = injector.get<ApiClient>();
|
|
|
|
|
AppState appState = injector.get<AppState>();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<BranchDetailModel>> getAllNearBranchAndServices() async {
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject((json) => GenericRespModel.fromJson(json), ApiConsts.GetAllNearBranches, token: appState.getUser.data!.accessToken);
|
|
|
|
|
List<BranchDetailModel> nearBranches = List.generate(adsGenericModel.data.length, (index) => BranchDetailModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return nearBranches;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<ItemData>> getServiceItems(int serviceId) async {
|
|
|
|
|
var queryParameters = {
|
|
|
|
|
"ServiceProviderServiceID": serviceId.toString(),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.getServiceItems,
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
queryParameters: queryParameters,
|
|
|
|
|
);
|
|
|
|
|
List<ItemData> serviceItems = List.generate(adsGenericModel.data.length, (index) => ItemData.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return serviceItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<ProviderProfileModel> getBranchAndServices(int providerId) async {
|
|
|
|
|
var postParams = {"serviceProviderID": providerId.toString()};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject((json) => GenericRespModel.fromJson(json), ApiConsts.BranchesAndServices, token: appState.getUser.data!.accessToken, queryParameters: postParams);
|
|
|
|
|
|
|
|
|
|
return ProviderProfileModel.fromJson(adsGenericModel.data);
|
|
|
|
|
}
|
|
|
|
|
}
|