@ -2,6 +2,7 @@ import 'dart:convert';
import ' dart:developer ' ;
import ' dart:developer ' ;
import ' package:diplomaticquarterapp/config/config.dart ' ;
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/ResponseModel.dart ' ;
import ' package:diplomaticquarterapp/core/model/packages_offers/requests/AddProductToCartRequestModel.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/CreateCustomerRequestModel.dart ' ;
@ -13,10 +14,15 @@ import 'package:diplomaticquarterapp/core/model/packages_offers/responses/Packag
import ' package:diplomaticquarterapp/core/model/packages_offers/responses/PackagesResponseModel.dart ' ;
import ' package:diplomaticquarterapp/core/model/packages_offers/responses/PackagesResponseModel.dart ' ;
import ' package:diplomaticquarterapp/core/model/packages_offers/responses/order_response_model.dart ' ;
import ' package:diplomaticquarterapp/core/model/packages_offers/responses/order_response_model.dart ' ;
import ' package:diplomaticquarterapp/core/service/base_service.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/gif_loader_dialog_utils.dart ' ;
import ' package:diplomaticquarterapp/uitl/utils.dart ' ;
import ' package:flutter/cupertino.dart ' ;
import ' package:flutter/cupertino.dart ' ;
var packagesAuthHeader = < String , String > { ' Authorization ' : ' ' } ;
class OffersAndPackagesServices extends BaseService {
class OffersAndPackagesServices extends BaseService {
AuthenticatedUser patientUser ;
List < PackagesCategoriesResponseModel > categoryList = List ( ) ;
List < PackagesCategoriesResponseModel > categoryList = List ( ) ;
List < PackagesResponseModel > productList = List ( ) ;
List < PackagesResponseModel > productList = List ( ) ;
List < PackagesResponseModel > latestOffersList = List ( ) ;
List < PackagesResponseModel > latestOffersList = List ( ) ;
@ -25,13 +31,14 @@ class OffersAndPackagesServices extends BaseService {
List < PackagesCartItemsResponseModel > cartItemList = List ( ) ;
List < PackagesCartItemsResponseModel > cartItemList = List ( ) ;
String cartItemCount = " " ;
String cartItemCount = " " ;
PackagesCustomerResponseModel customer ;
PackagesCustomerResponseModel customer ;
Future < List < PackagesCategoriesResponseModel > > getAllCategories ( OffersCategoriesRequestModel request ) async {
Future < List < PackagesCategoriesResponseModel > > getAllCategories ( OffersCategoriesRequestModel request ) async {
Future errorThrow ;
Future errorThrow ;
var url = EXA_CART_API_BASE_URL + PACKAGES_CATEGORIES ;
var url = EXA_CART_API_BASE_URL + PACKAGES_CATEGORIES ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
jsonResponse [ ' categories ' ] . forEach ( ( json ) {
jsonResponse [ ' categories ' ] . forEach ( ( json ) {
@ -39,7 +46,6 @@ class OffersAndPackagesServices extends BaseService {
} ) ;
} ) ;
}
}
} , onFailure: ( String error , int statusCode ) {
} , onFailure: ( String error , int statusCode ) {
log ( error ) ;
} , queryParams: request . toFlatMap ( ) ) ;
} , queryParams: request . toFlatMap ( ) ) ;
return categoryList ;
return categoryList ;
@ -52,7 +58,7 @@ class OffersAndPackagesServices extends BaseService {
productList = List ( ) ;
productList = List ( ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS ;
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
jsonResponse [ ' products ' ] . forEach ( ( json ) {
jsonResponse [ ' products ' ] . forEach ( ( json ) {
@ -60,7 +66,6 @@ class OffersAndPackagesServices extends BaseService {
} ) ;
} ) ;
}
}
} , onFailure: ( String error , int statusCode ) {
} , onFailure: ( String error , int statusCode ) {
log ( error ) ;
} , queryParams: request . toFlatMap ( ) ) ;
} , queryParams: request . toFlatMap ( ) ) ;
return productList ;
return productList ;
@ -69,7 +74,7 @@ class OffersAndPackagesServices extends BaseService {
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 ;
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
jsonResponse [ ' products ' ] . forEach ( ( json ) {
jsonResponse [ ' products ' ] . forEach ( ( json ) {
@ -86,7 +91,7 @@ class OffersAndPackagesServices extends BaseService {
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 ;
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
jsonResponse [ ' products ' ] . forEach ( ( json ) {
jsonResponse [ ' products ' ] . forEach ( ( json ) {
@ -103,7 +108,7 @@ class OffersAndPackagesServices extends BaseService {
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 ;
var url = EXA_CART_API_BASE_URL + PACKAGES_PRODUCTS ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
jsonResponse [ ' products ' ] . forEach ( ( json ) {
jsonResponse [ ' products ' ] . forEach ( ( json ) {
@ -121,6 +126,22 @@ class OffersAndPackagesServices extends BaseService {
var finished = 0 ;
var finished = 0 ;
var totalCalls = 3 ;
var totalCalls = 3 ;
final auth_token = await baseAppClient . generatePackagesToken ( ) ;
if ( auth_token = = null ) {
throw ' Something went wrong while authentication, Please try again letter ' ;
}
packagesAuthHeader [ " Authorization " ] = ' Bearer $ auth_token ' ;
/ / Check and Create Customer
if ( patientUser ! = null ) {
customer = await getCurrentCustomer ( context: context , showLoading: showLoading ) ;
if ( customer = = null ) {
createCustomer ( PackagesCustomerRequestModel . fromUser ( patientUser ) , context: context ) ;
}
}
completedAll ( ) {
completedAll ( ) {
finished + + ;
finished + + ;
@ -162,24 +183,42 @@ class OffersAndPackagesServices extends BaseService {
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_CUSTOMER ;
var url = EXA_CART_API_BASE_URL + PACKAGES_CUSTOMER ;
await baseAppClient . simplePost ( url , 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 jsonResponse = json . decode ( stringResponse ) ;
var customerJson = jsonResponse [ ' customers ' ] . first ;
var customerJson = jsonResponse [ ' customers ' ] . first ;
customer = PackagesCustomerResponseModel . fromJson ( customerJson ) ;
customer = PackagesCustomerResponseModel . fromJson ( customerJson ) ;
} , onFailure: ( String error , int statusCode ) {
} , onFailure: ( String error , int statusCode ) {
_hideLoading ( context , showLoading ) ;
errorThrow = Future . error ( error ) ;
errorThrow = Future . error ( error ) ;
log ( error ) ;
log ( error ) ;
} ) ;
} ) ;
_hideLoading ( context , showLoading ) ;
await Future . delayed ( Duration ( seconds: 1 ) ) ;
await Future . delayed ( Duration ( seconds: 1 ) ) ;
return errorThrow ? ? customer ;
return errorThrow ? ? customer ;
}
}
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 jsonResponse = json . decode ( stringResponse ) ;
var customerJson = jsonResponse [ ' customers ' ] . first ;
customer = PackagesCustomerResponseModel . fromJson ( customerJson ) ;
} , onFailure: ( String error , int statusCode ) {
log ( error ) ;
} ) ;
_hideLoading ( context , showLoading ) ;
return customer ;
}
/ / - - - - - - - - - - - - - - - - - - - -
/ / - - - - - - - - - - - - - - - - - - - -
@ -191,7 +230,7 @@ class OffersAndPackagesServices extends BaseService {
cartItemList . clear ( ) ;
cartItemList . clear ( ) ;
_showLoading ( context , showLoading ) ;
_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 } ' ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
_hideLoading ( context , showLoading ) ;
_hideLoading ( context , showLoading ) ;
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
@ -216,7 +255,7 @@ class OffersAndPackagesServices extends BaseService {
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART ;
await baseAppClient . simplePost ( url , 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 ) ;
_hideLoading ( context , showLoading ) ;
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
@ -237,7 +276,7 @@ class OffersAndPackagesServices extends BaseService {
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + ' / $ cartItemID ' ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + ' / $ cartItemID ' ;
await baseAppClient . simplePut ( url , 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 ) ;
_hideLoading ( context , showLoading ) ;
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
@ -257,7 +296,7 @@ class OffersAndPackagesServices extends BaseService {
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + ' / $ cartItemID ' ;
var url = EXA_CART_API_BASE_URL + PACKAGES_SHOPPING_CART + ' / $ cartItemID ' ;
await baseAppClient . simpleDelete ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleDelete ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
_hideLoading ( context , showLoading ) ;
_hideLoading ( context , showLoading ) ;
/ / var jsonResponse = json . decode ( stringResponse ) ;
/ / var jsonResponse = json . decode ( stringResponse ) ;
@ -280,8 +319,8 @@ class OffersAndPackagesServices extends BaseService {
" order " : {
" order " : {
" customer_id " : customer . id ,
" customer_id " : customer . id ,
" billing_address " : {
" billing_address " : {
" email " : customer. email ,
" email " : patientUser. emailAddress ,
" phone_number " : customer. addresses . first . phon eNumber
" phone_number " : patientUser. mobil eNumber
} ,
} ,
" payment_method_system_name " : " Payments.PayFort " ,
" payment_method_system_name " : " Payments.PayFort " ,
" payment_option " : paymentOption
" payment_option " : paymentOption
@ -291,7 +330,7 @@ class OffersAndPackagesServices extends BaseService {
int order_id ;
int order_id ;
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS ;
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS ;
await baseAppClient . simplePost ( url , body: jsonBody , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simplePost ( url , headers: packagesAuthHeader , body: jsonBody , onSuccess: ( dynamic stringResponse , int statusCode ) {
_hideLoading ( context , showLoading ) ;
_hideLoading ( context , showLoading ) ;
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;
@ -312,7 +351,7 @@ class OffersAndPackagesServices extends BaseService {
_showLoading ( context , showLoading ) ;
_showLoading ( context , showLoading ) ;
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS + ' / $ id ' ;
var url = EXA_CART_API_BASE_URL + PACKAGES_ORDERS + ' / $ id ' ;
await baseAppClient . simpleGet ( url , onSuccess: ( dynamic stringResponse , int statusCode ) {
await baseAppClient . simpleGet ( url , headers: packagesAuthHeader , onSuccess: ( dynamic stringResponse , int statusCode ) {
_hideLoading ( context , showLoading ) ;
_hideLoading ( context , showLoading ) ;
var jsonResponse = json . decode ( stringResponse ) ;
var jsonResponse = json . decode ( stringResponse ) ;