|
|
|
@ -4,6 +4,7 @@ import 'dart:developer';
|
|
|
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/ResponseModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/packages_offers/requests/AddProductToCartRequestModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/packages_offers/requests/CreateCustomerRequestModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/packages_offers/requests/OffersCategoriesRequestModel.dart';
|
|
|
|
@ -15,13 +16,11 @@ import 'package:diplomaticquarterapp/core/model/packages_offers/responses/Packag
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/packages_offers/responses/order_response_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/packages_offers/responses/tamara_payment_option.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
|
|
|
|
|
|
var packagesAuthHeader = <String, String>{'Authorization': ''};
|
|
|
|
|
Map<String, String> packagesAuthHeader = {};
|
|
|
|
|
|
|
|
|
|
class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
AuthenticatedUser patientUser;
|
|
|
|
@ -32,64 +31,52 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
List<PackagesResponseModel> bestSellerList = List();
|
|
|
|
|
List<PackagesResponseModel> bannersList = List();
|
|
|
|
|
List<PackagesCartItemsResponseModel> cartItemList = List();
|
|
|
|
|
List<HospitalsModel> _hospitals = List();
|
|
|
|
|
List<HospitalsModel> get hospitals => _hospitals;
|
|
|
|
|
String cartItemCount = "";
|
|
|
|
|
|
|
|
|
|
PackagesCustomerResponseModel customer;
|
|
|
|
|
|
|
|
|
|
Future<List<PackagesCategoriesResponseModel>> getAllCategories(
|
|
|
|
|
OffersCategoriesRequestModel request) async {
|
|
|
|
|
Future<List<PackagesCategoriesResponseModel>> getAllCategories(OffersCategoriesRequestModel request) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_CATEGORIES;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['categories'].forEach((json) {
|
|
|
|
|
categoryList.add(PackagesCategoriesResponseModel().fromJson(json));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onFailure: (String error, int statusCode) {},
|
|
|
|
|
queryParams: request.toFlatMap());
|
|
|
|
|
}, onFailure: (String error, int statusCode) {}, queryParams: request.toFlatMap());
|
|
|
|
|
|
|
|
|
|
return categoryList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<List<PackagesResponseModel>> getAllProducts(
|
|
|
|
|
{@required OffersProductsRequestModel request,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
@required bool showLoading = true}) async {
|
|
|
|
|
Future<List<PackagesResponseModel>> getAllProducts({@required OffersProductsRequestModel request, @required BuildContext context, @required bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
request.sinceId = (productList.isNotEmpty) ? productList.last.id : 0;
|
|
|
|
|
|
|
|
|
|
productList = List();
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['products'].forEach((json) {
|
|
|
|
|
productList.add(PackagesResponseModel().fromJson(json));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onFailure: (String error, int statusCode) {},
|
|
|
|
|
queryParams: request.toFlatMap());
|
|
|
|
|
}, onFailure: (String error, int statusCode) {}, queryParams: request.toFlatMap());
|
|
|
|
|
|
|
|
|
|
return productList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<List<TamaraPaymentOption>> getTamaraOptions(
|
|
|
|
|
{@required BuildContext context,
|
|
|
|
|
@required bool showLoading = true}) async {
|
|
|
|
|
if (tamaraPaymentOptions != null && tamaraPaymentOptions.isNotEmpty)
|
|
|
|
|
return tamaraPaymentOptions;
|
|
|
|
|
Future<List<TamaraPaymentOption>> getTamaraOptions({@required BuildContext context, @required bool showLoading = true}) async {
|
|
|
|
|
if (tamaraPaymentOptions != null && tamaraPaymentOptions.isNotEmpty) return tamaraPaymentOptions;
|
|
|
|
|
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_TAMARA_OPT;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['payment_option'].forEach((json) {
|
|
|
|
@ -103,14 +90,10 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return tamaraPaymentOptions;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<List<PackagesResponseModel>> getLatestOffers(
|
|
|
|
|
{@required OffersProductsRequestModel request,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
@required bool showLoading = true}) async {
|
|
|
|
|
Future<List<PackagesResponseModel>> getLatestOffers({@required OffersProductsRequestModel request, @required BuildContext context, @required bool showLoading = true}) async {
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
latestOffersList.clear();
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
latestOffersList.clear();
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['products'].forEach((json) {
|
|
|
|
@ -124,14 +107,10 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return latestOffersList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<List<PackagesResponseModel>> getBestSellers(
|
|
|
|
|
{@required OffersProductsRequestModel request,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
@required bool showLoading = true}) async {
|
|
|
|
|
Future<List<PackagesResponseModel>> getBestSellers({@required OffersProductsRequestModel request, @required BuildContext context, @required bool showLoading = true}) async {
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
bestSellerList.clear();
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
bestSellerList.clear();
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['products'].forEach((json) {
|
|
|
|
@ -145,13 +124,9 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return bestSellerList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<List<PackagesResponseModel>> getBanners(
|
|
|
|
|
{@required OffersProductsRequestModel request,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
@required bool showLoading = true}) async {
|
|
|
|
|
Future<List<PackagesResponseModel>> getBanners({@required OffersProductsRequestModel request, @required BuildContext context, @required bool showLoading = true}) async {
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
if (statusCode == 200) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
jsonResponse['products'].forEach((json) {
|
|
|
|
@ -165,10 +140,7 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return bannersList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future loadOffersPackagesDataForMainPage(
|
|
|
|
|
{@required BuildContext context,
|
|
|
|
|
bool showLoading = true,
|
|
|
|
|
Function completion}) async {
|
|
|
|
|
Future loadOffersPackagesDataForMainPage({@required BuildContext context, bool showLoading = true, Function completion}) async {
|
|
|
|
|
var finished = 0;
|
|
|
|
|
var totalCalls = 2;
|
|
|
|
|
|
|
|
|
@ -190,30 +162,20 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
|
|
|
|
|
// Check and Create Customer
|
|
|
|
|
if (patientUser != null) {
|
|
|
|
|
customer =
|
|
|
|
|
await getCurrentCustomer(context: context, showLoading: showLoading);
|
|
|
|
|
customer = await getCurrentCustomer(context: context, showLoading: showLoading);
|
|
|
|
|
if (customer == null) {
|
|
|
|
|
createCustomer(PackagesCustomerRequestModel.fromUser(patientUser),
|
|
|
|
|
context: context);
|
|
|
|
|
createCustomer(PackagesCustomerRequestModel.fromUser(patientUser), context: context);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Performing Parallel Request on same time
|
|
|
|
|
// # 1
|
|
|
|
|
getBestSellers(
|
|
|
|
|
request: OffersProductsRequestModel(),
|
|
|
|
|
context: context,
|
|
|
|
|
showLoading: false)
|
|
|
|
|
.then((value) {
|
|
|
|
|
getBestSellers(request: OffersProductsRequestModel(), context: context, showLoading: false).then((value) {
|
|
|
|
|
completedAll();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// # 2
|
|
|
|
|
getLatestOffers(
|
|
|
|
|
request: OffersProductsRequestModel(),
|
|
|
|
|
context: context,
|
|
|
|
|
showLoading: false)
|
|
|
|
|
.then((value) {
|
|
|
|
|
getLatestOffers(request: OffersProductsRequestModel(), context: context, showLoading: false).then((value) {
|
|
|
|
|
completedAll();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@ -230,10 +192,7 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
// --------------------
|
|
|
|
|
// Create Customer
|
|
|
|
|
// --------------------
|
|
|
|
|
Future createCustomer(PackagesCustomerRequestModel request,
|
|
|
|
|
{@required BuildContext context,
|
|
|
|
|
bool showLoading = true,
|
|
|
|
|
Function(bool) completion}) async {
|
|
|
|
|
Future createCustomer(PackagesCustomerRequestModel request, {@required BuildContext context, bool showLoading = true, Function(bool) completion}) async {
|
|
|
|
|
if (customer != null) return Future.value(customer);
|
|
|
|
|
|
|
|
|
|
customer = null;
|
|
|
|
@ -241,9 +200,7 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_CUSTOMER;
|
|
|
|
|
await baseAppClient
|
|
|
|
|
.simplePost(url, headers: packagesAuthHeader, body: request.json(),
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simplePost(url, headers: packagesAuthHeader, body: request.json(), onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
var customerJson = jsonResponse['customers'].first;
|
|
|
|
|
customer = PackagesCustomerResponseModel.fromJson(customerJson);
|
|
|
|
@ -258,16 +215,12 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return errorThrow ?? customer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<PackagesCustomerResponseModel> getCurrentCustomer(
|
|
|
|
|
{@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future<PackagesCustomerResponseModel> getCurrentCustomer({@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
if (customer != null) return Future.value(customer);
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL +
|
|
|
|
|
PACKAGES_CUSTOMER +
|
|
|
|
|
"/username/${patientUser.patientID}";
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_CUSTOMER + "/username/${patientUser.patientID}";
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
var customerJson = jsonResponse['customers'].first;
|
|
|
|
|
customer = PackagesCustomerResponseModel.fromJson(customerJson);
|
|
|
|
@ -282,17 +235,14 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
// --------------------
|
|
|
|
|
// Shopping Cart
|
|
|
|
|
// --------------------
|
|
|
|
|
Future<Map<String, dynamic>> cartItems(
|
|
|
|
|
{@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future<Map<String, dynamic>> cartItems({@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
cartItemList.clear();
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url =
|
|
|
|
|
EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + '/${customer.id}';
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + '/${customer.id}';
|
|
|
|
|
Map<String, dynamic> jsonResponse;
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
|
|
|
|
|
jsonResponse = json.decode(stringResponse);
|
|
|
|
@ -308,10 +258,7 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return errorThrow ?? jsonResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<ResponseModel<PackagesCartItemsResponseModel>> addProductToCart(
|
|
|
|
|
AddProductToCartRequestModel request,
|
|
|
|
|
{@required BuildContext context,
|
|
|
|
|
bool showLoading = true}) async {
|
|
|
|
|
Future<ResponseModel<PackagesCartItemsResponseModel>> addProductToCart(AddProductToCartRequestModel request, {@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
ResponseModel<PackagesCartItemsResponseModel> response;
|
|
|
|
|
|
|
|
|
@ -319,38 +266,27 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART;
|
|
|
|
|
await baseAppClient
|
|
|
|
|
.simplePost(url, headers: packagesAuthHeader, body: request.json(),
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simplePost(url, headers: packagesAuthHeader, body: request.json(), onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
var jsonCartItem = jsonResponse["shopping_carts"][0];
|
|
|
|
|
response = ResponseModel(
|
|
|
|
|
status: true,
|
|
|
|
|
data: PackagesCartItemsResponseModel.fromJson(jsonCartItem),
|
|
|
|
|
error: null);
|
|
|
|
|
response = ResponseModel(status: true, data: PackagesCartItemsResponseModel.fromJson(jsonCartItem), error: null);
|
|
|
|
|
cartItemCount = (jsonResponse['count'] ?? 0).toString();
|
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
errorThrow =
|
|
|
|
|
Future.error(ResponseModel(status: true, data: null, error: error));
|
|
|
|
|
errorThrow = Future.error(ResponseModel(status: true, data: null, error: error));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return errorThrow ?? response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future updateProductToCart(int cartItemID,
|
|
|
|
|
{UpdateProductToCartRequestModel request,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
bool showLoading = true}) async {
|
|
|
|
|
Future updateProductToCart(int cartItemID, {UpdateProductToCartRequestModel request, @required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + '/$cartItemID';
|
|
|
|
|
await baseAppClient
|
|
|
|
|
.simplePut(url, headers: packagesAuthHeader, body: request.json(),
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simplePut(url, headers: packagesAuthHeader, body: request.json(), onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
@ -363,16 +299,13 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return errorThrow ?? bannersList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<bool> deleteProductFromCart(int cartItemID,
|
|
|
|
|
{@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future<bool> deleteProductFromCart(int cartItemID, {@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + '/$cartItemID';
|
|
|
|
|
await baseAppClient.simpleDelete(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleDelete(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
// var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
log(error);
|
|
|
|
@ -385,28 +318,23 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
// --------------------
|
|
|
|
|
// Place Order
|
|
|
|
|
// --------------------
|
|
|
|
|
Future placeOrder(
|
|
|
|
|
{@required Map<dynamic, dynamic> paymentParams,
|
|
|
|
|
@required BuildContext context,
|
|
|
|
|
bool showLoading = true}) async {
|
|
|
|
|
Future placeOrder({@required Map<dynamic, dynamic> paymentParams, @required int projectID, @required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
|
|
|
|
|
Map<dynamic, dynamic> jsonBody = {
|
|
|
|
|
"customer_id": customer.id,
|
|
|
|
|
"billing_address": {
|
|
|
|
|
"email": patientUser.emailAddress,
|
|
|
|
|
"phone_number": patientUser.mobileNumber
|
|
|
|
|
},
|
|
|
|
|
"project_id": projectID,
|
|
|
|
|
"billing_address": {"email": patientUser.emailAddress, "phone_number": patientUser.mobileNumber},
|
|
|
|
|
};
|
|
|
|
|
jsonBody.addAll(paymentParams);
|
|
|
|
|
jsonBody = {'order': jsonBody};
|
|
|
|
|
|
|
|
|
|
print(jsonBody);
|
|
|
|
|
|
|
|
|
|
int order_id;
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS;
|
|
|
|
|
await baseAppClient.simplePost(url,
|
|
|
|
|
headers: packagesAuthHeader,
|
|
|
|
|
body: jsonBody, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simplePost(url, headers: packagesAuthHeader, body: jsonBody, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
@ -420,21 +348,18 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
return errorThrow ?? order_id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<ResponseModel<PackagesOrderResponseModel>> getOrderById(int id,
|
|
|
|
|
{@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future<ResponseModel<PackagesOrderResponseModel>> getOrderById(int id, {@required BuildContext context, bool showLoading = true}) async {
|
|
|
|
|
Future errorThrow;
|
|
|
|
|
ResponseModel<PackagesOrderResponseModel> response;
|
|
|
|
|
|
|
|
|
|
_showLoading(context, showLoading);
|
|
|
|
|
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS + '/$id';
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader,
|
|
|
|
|
onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
await baseAppClient.simpleGet(url, headers: packagesAuthHeader, onSuccess: (dynamic stringResponse, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
|
|
|
|
|
var jsonResponse = json.decode(stringResponse);
|
|
|
|
|
var jsonOrder = jsonResponse['orders'][0];
|
|
|
|
|
response = ResponseModel(
|
|
|
|
|
status: true, data: PackagesOrderResponseModel.fromJson(jsonOrder));
|
|
|
|
|
response = ResponseModel(status: true, data: PackagesOrderResponseModel.fromJson(jsonOrder));
|
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
|
_hideLoading(context, showLoading);
|
|
|
|
|
errorThrow = Future.error(ResponseModel(status: false, error: error));
|
|
|
|
@ -442,6 +367,26 @@ class OffersAndPackagesServices extends BaseService {
|
|
|
|
|
|
|
|
|
|
return errorThrow ?? response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future getHospitals({bool isResBasedOnLoc = true}) async {
|
|
|
|
|
Map<String, dynamic> body = Map();
|
|
|
|
|
body['Latitude'] = await this.sharedPref.getDouble(USER_LAT);
|
|
|
|
|
body['Longitude'] = await this.sharedPref.getDouble(USER_LONG);
|
|
|
|
|
body['IsOnlineCheckIn'] = isResBasedOnLoc;
|
|
|
|
|
body['PatientOutSA'] = 0;
|
|
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_PROJECT,
|
|
|
|
|
onSuccess: (dynamic response, int statusCode) {
|
|
|
|
|
_hospitals.clear();
|
|
|
|
|
response['ListProject'].forEach((hospital) {
|
|
|
|
|
_hospitals.add(HospitalsModel.fromJson(hospital));
|
|
|
|
|
});
|
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
|
hasError = true;
|
|
|
|
|
super.error = error;
|
|
|
|
|
}, body: body);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_showLoading(BuildContext context, bool flag) {
|
|
|
|
|