You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.2 KiB
Dart
57 lines
2.2 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
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/branch_models/branch_detail_model.dart';
|
|
import 'package:mc_common_app/models/generic_resp_model.dart';
|
|
import 'package:mc_common_app/models/model/provider_model.dart';
|
|
import 'package:mc_common_app/models/services/item_model.dart';
|
|
|
|
abstract class BranchRepo {
|
|
Future<List<BranchDetailModel>> getAllNearBranchAndServices();
|
|
|
|
Future<ItemModel> getServiceItems(int serviceId);
|
|
|
|
Future<ProviderModel> getBranchAndServices(int providerId);
|
|
}
|
|
|
|
class BranchRepoImp implements BranchRepo {
|
|
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> branches = List.generate(adsGenericModel.data.length, (index) => BranchDetailModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
return branches;
|
|
}
|
|
|
|
@override
|
|
Future<ItemModel> getServiceItems(int serviceId) async {
|
|
var queryParameters = {
|
|
"ServiceProviderServiceID": serviceId.toString(),
|
|
};
|
|
String? token = AppState().getUser.data?.accessToken;
|
|
debugPrint(token);
|
|
return await injector
|
|
.get<ApiClient>()
|
|
.getJsonForObject((json) => ItemModel.fromJson(json), ApiConsts.getServiceItems, queryParameters: queryParameters, token: AppState().getUser.data!.accessToken ?? "");
|
|
}
|
|
|
|
@override
|
|
Future<ProviderModel> getBranchAndServices(int providerId) async {
|
|
var postParams = {"serviceProviderID": providerId.toString()};
|
|
String t = AppState().getUser.data!.accessToken ?? "";
|
|
return await injector.get<ApiClient>().getJsonForObject((json) => ProviderModel.fromJson(json), ApiConsts.BranchesAndServices, queryParameters: postParams, token: t);
|
|
}
|
|
}
|