Initial commit

This commit is contained in:
jahongireshonqulov
2025-10-17 19:42:02 +05:00
commit 9fbdabafb4
1420 changed files with 28021 additions and 0 deletions

View File

@@ -0,0 +1,161 @@
import 'dart:convert';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/cart_response.dart';
import 'package:grostore/models/common_response.dart';
import 'package:grostore/models/country_response.dart';
import 'package:grostore/models/edit_address_response.dart';
import 'package:grostore/models/order/order_summery_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/state_response.dart';
import 'package:grostore/models/user/addresses_response.dart';
import '../models/city_response.dart';
class AddressApi{
static Future<ResponseModel<CommonResponse>> addAddress({required int countryId,required int stateId,required int cityId,required int isDefault,required String address})
async{
var url = "${AppConfig.apiUrl}/address/store";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"country_id":countryId,
"state_id":stateId,
"city_id":cityId,
"is_default":isDefault,
"address":address
});
ApiResponse response = await ApiRequest.post(body: postBody, url: url,header: header);
if(response.result){
return ResponseModel(response.statusCode,commonResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, CommonResponse(result: false, message: 'Failed'));
}
}
static Future<ResponseModel<CommonResponse>> updateAddress({required int id,required int countryId,required int stateId,required int cityId,required int isDefault,required String address})
async{
var url = "${AppConfig.apiUrl}/address/update";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"id":id,
"country_id":countryId,
"state_id":stateId,
"city_id":cityId,
"is_default":isDefault,
"address":address
});
ApiResponse response = await ApiRequest.post(body: postBody, url: url,header: header);
if(response.result){
return ResponseModel(response.statusCode,commonResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, CommonResponse(result: false, message: 'Failed'));
}
}
static Future<ResponseModel<CommonResponse>> deleteAddress({required int id})
async{
var url = "${AppConfig.apiUrl}/address/delete/$id";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
ApiResponse response = await ApiRequest.get( url, header);
if(response.result){
return ResponseModel(response.statusCode,commonResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, CommonResponse(result: false, message: 'Failed'));
}
}
static Future<ResponseModel<AddressesResponse>> getAddresses()async{
var url = "${AppConfig.apiUrl}/address";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,addressesResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,AddressesResponse(data: []));
}
}
static Future<ResponseModel<EditAddressResponse>> editAddresses(id)async{
var url = "${AppConfig.apiUrl}/address/edit/$id";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
print(url.toString());
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,editAddressResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,EditAddressResponse(data: Data.fromJson({}), result: false, status: 500));
}
}
static Future<ResponseModel<CountryResponse>> getCountries()async{
var url = "${AppConfig.apiUrl}/address/countries";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
ApiResponse response = await ApiRequest.get(url, header);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,countryResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CountryResponse(data: []));
}
}
static Future<ResponseModel<StateResponse>> getState(id)async{
var url = "${AppConfig.apiUrl}/address/states?country_id=$id";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,stateResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,StateResponse(data: []));
}
}
static Future<ResponseModel<CityResponse>> getCity(id)async{
var url = "${AppConfig.apiUrl}/address/cities?state_id=$id";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,cityResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CityResponse(data: []));
}
}
}

View File

@@ -0,0 +1,133 @@
import 'package:flutter/cupertino.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/route.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/middlewares/banned_user_middleware.dart';
import 'package:grostore/models/auth/login_response_model.dart';
import 'package:grostore/models/auth/registration_response_model.dart';
import 'package:grostore/models/auth/token_check_response.dart';
import 'package:grostore/models/common/user_info.dart';
import 'package:grostore/screens/auth/login.dart';
class AuthApi{
/// Login
static Future<LoginResponse> login(String requestBody,BuildContext context)async{
var url = "${AppConfig.apiUrl}/login";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
};
ApiResponse response = await ApiRequest.post(url:url, header:header,body: requestBody,middleWare:BannedMiddleware(context));
debugPrint("Respons:::${response.body}:::");
if(response.result){
return loginResponseFromJson(response.body);
}else{
return loginResponseDefaultValue();
}
}
/// Token chack
static Future<TokenCheckResponse> tokenCheck(BuildContext context)async{
var url = "${AppConfig.apiUrl}/token-check";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Authorization": "Bearer ${access_token.$}",
};
print(access_token.$);
ApiResponse response = await ApiRequest.get(url, header,middleWare:BannedMiddleware(context));
debugPrint(response.body);
if(response.result){
return tokenCheckResponseFromJson(response.body);
}else
// if(response.statusCode != 200){
// access_token.$ = "";
// MakeRoute.goAndRemoveAll(context, Login());
// }else
{
return TokenCheckResponse(result: false, user: UserInfo.init());
}
}
// logout
static Future<TokenCheckResponse> logout(BuildContext context)async{
var url = "${AppConfig.apiUrl}/logout";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Authorization": "Bearer ${access_token.$}",
};
print("LogoOUt::: $url ::");
ApiResponse response = await ApiRequest.get(url, header,middleWare:BannedMiddleware(context));
debugPrint(response.body);
if(response.result){
return tokenCheckResponseFromJson(response.body);
}else{
return TokenCheckResponse(result: false, user: UserInfo.init());
}
}
/// Regster
static Future<RegistrationResponses> registration(BuildContext context,String postBody)async{
var url = "${AppConfig.apiUrl}/register";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.post(url:url, header:header, body: postBody, middleWare:BannedMiddleware(context));
debugPrint("Register response:: ${response.body} ::");
if(response.result){
return registrationResFromJson(response.body);
}else{
return registrationResponsesDefault();
}
}
/// Forget password
static Future<RegistrationResp> forgetPassword(BuildContext context,String postBody)async{
var url = "${AppConfig.apiUrl}/forgotPassword";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
print("}} $url {{");
ApiResponse response = await ApiRequest.post(url:url, header:header, body: postBody,middleWare:BannedMiddleware(context));
debugPrint("Status Info}} ${response.result} {{");
// debugPrint("}} ${response.body} {{");
if(response.result){
return registrationRespFromJson(response.body);
}else{
return registrationRespDefault();
}
}
/// Otp
static Future<RegistrationResponse> forgetOTP(BuildContext context, String postBody)async{
var url = "${AppConfig.apiUrl}/verify";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
print("URl:: $url ::");
ApiResponse response = await ApiRequest.post(url: url, header: header, body: postBody);
debugPrint("Otp::: ${response.body} :::");
if(response.result){
return registrationResponseFromJson(response.body);
}else{
return registrationResponseDefault();
}
}
}

View File

@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/response_model.dart';
class BannersApi{
static Future<ResponseModel<HomeBannerResponse>> homeBanner(BuildContext context)async{
var url = "${AppConfig.apiUrl}/banner/home";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
debugPrint(response.body);
if(response.result){
return ResponseModel(response.statusCode,homeBannerResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,HomeBannerResponse(data: []));
}
}
}

View File

@@ -0,0 +1,89 @@
import 'dart:convert';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/cart_response.dart';
import 'package:grostore/models/response_model.dart';
class CartApi{
static Future<ResponseModel<CartResponse>> carts()async{
var url = "${AppConfig.apiUrl}/carts";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
print(header);
ApiResponse response = await ApiRequest.get(url, header);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,cartResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: '0.0', couponDiscount: ''));
}
}
static Future<ResponseModel<CartResponse>> addToCart({required variantId,required int qty})async{
var url = "${AppConfig.apiUrl}/carts/add";
Map<String,String> header = getCommonHeader();
header.addAll(getCurrencyHeader());
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"product_variation_id":variantId,
"quantity":qty
});
print(header);
print(postBody);
ApiResponse response = await ApiRequest.post(body: postBody, url: url,header: header);
if(response.result){
return ResponseModel(response.statusCode,cartResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: '0.0', couponDiscount: ''));
}
}
static Future<ResponseModel<CartResponse>> couponApply({required code})async{
var url = "${AppConfig.apiUrl}/coupons/coupon-apply";
Map<String,String> header = getCommonHeader();
header.addAll(getCurrencyHeader());
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"code":"$code"
});
ApiResponse response = await ApiRequest.post(body: postBody, url: url,header: header);
if(response.result){
return ResponseModel(response.statusCode,cartResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: '0.0', couponDiscount: ''));
}
}
static Future<ResponseModel<CartResponse>> cartUpdate({required id,required String action})async{
var url = "${AppConfig.apiUrl}/carts/update";
Map<String,String> header = getCommonHeader();
header.addAll(getCurrencyHeader());
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"id":id,
"action":action
});
ApiResponse response = await ApiRequest.post(body: postBody, url: url,header: header);
if(response.result){
return ResponseModel(response.statusCode,cartResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CartResponse(result: false, message: '', carts: [], cartCount: 0, subTotal: '0.0', total: '0.0', couponDiscount: ''));
}
}
}

View File

@@ -0,0 +1,42 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/category_response.dart';
class CategoryApi{
static Future<ResponseModel<CategoryResponse>> topCategory()async{
var url = "${AppConfig.apiUrl}/category/top-category";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,categoryResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,categoryResponseFromJson(""));
}
}
static Future<ResponseModel<CategoryResponse>> getCategories(page)async{
var url = "${AppConfig.apiUrl}/category/all?page=$page";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
print(url);
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,categoryResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,categoryResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,32 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/coupon_response.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/response_model.dart';
class CouponsApi{
static Future<ResponseModel<CouponResponse>> getCoupons()async{
var url = "${AppConfig.apiUrl}/coupons";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
debugPrint(response.body);
if(response.result){
return ResponseModel(response.statusCode,couponResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,CouponResponse(data: []));
}
}
}

View File

@@ -0,0 +1,23 @@
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/currency_response.dart';
import 'package:grostore/models/response_model.dart';
class CurrencyApi {
Future<ResponseModel<CurrencyResponse>> getList() async {
var url = "${AppConfig.apiUrl}/currencies";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
};
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return ResponseModel(response.statusCode,currencyResponseFromJson(response.body));
} else {
return ResponseModel(response.statusCode,CurrencyResponse(data: []));
}
}
}

View File

@@ -0,0 +1,23 @@
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/language_response.dart';
import 'package:grostore/models/response_model.dart';
class LanguageApi{
static Future<ResponseModel<LanguageResponse>> getLanguages()async{
var url = "${AppConfig.apiUrl}/languages";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,languageResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,languageResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/locations_response.dart';
import 'package:grostore/models/response_model.dart';
class LocationApi{
static Future<ResponseModel<LocationsResponse>> getLocations(BuildContext context)async{
var url = "${AppConfig.apiUrl}/locations";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,locationsResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, LocationsResponse(data: []));
}
}
}

View File

@@ -0,0 +1,264 @@
import 'dart:convert';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/custom_classes/system_data.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/cart_response.dart';
import 'package:grostore/models/logistics_response.dart';
import 'package:grostore/models/order/order_details_response.dart';
import 'package:grostore/models/order/track_order_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/order/order_summery_response.dart';
import 'package:grostore/models/order/orders_response.dart';
import 'package:grostore/models/order_create_response.dart';
import 'package:grostore/models/payment_types_response.dart';
import 'package:grostore/models/time_slote_response.dart';
class OrderApi{
static Future<ResponseModel<OrdersResponse>> getOrders(key,page)async{
var url = "${AppConfig.apiUrl}/customer-order-history?status=$key&page=$page";
print("H5:::] $url [::::");
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
if(response.result){
return ResponseModel(response.statusCode,ordersResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,OrdersResponse.init());
}
}
static Future<ResponseModel<OrderDetailsResponse>> getDetails({required code})async{
var url = "${AppConfig.apiUrl}/order/invoice/$code";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header,);
if(response.result){
return ResponseModel(response.statusCode,orderDetailsResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,orderDetailsResponseFromJson(""));
}
}
static Future<ResponseModel<OrderSummeryResponse>> getSummery({required logistic_zone_id})async{
var url = "${AppConfig.apiUrl}/order/summery";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
header.addAll(getCouponHeader());
var postBody = jsonEncode({
"logistic_zone_id":logistic_zone_id
});
ApiResponse response = await ApiRequest.post(url:url, header:header,body: postBody);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,orderSummeryResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,OrderSummeryResponse(subTotal: "", tax: "", shippingCharge: "", isFreeShipping:false, couponDiscount: "", total: ""));
}
}
static Future<ResponseModel<LogisticsResponse>> getLogistics({required cityId})async{
var url = "${AppConfig.apiUrl}/logistic-by-city";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"city_id":cityId
});
ApiResponse response = await ApiRequest.post(url:url, header:header,body: postBody);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,logisticsResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,LogisticsResponse(data: []));
}
}
static Future<ResponseModel<OrderCreateResponse>> createOrder({
required shippingId,
required billingId,
required phone,
required alternativePhone,
required logisticZoneId,
required tips,
required shippingDeliveryType,
required timeslot,
required scheduledData,
required paymentType
})async{
var url = "${AppConfig.apiUrl}/order/store";
Map<String,String> header = getCommonHeader();
print("Url==: $url ;==");
print("BearerToken==: ${access_token.$} ;==");
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
// header.addAll(getCouponHeader());
// header.addAll(getCurrencyHeader());
var postBody = jsonEncode({
"shipping_address_id":shippingId,
"billing_address_id":billingId,
"phone":phone,
"alternative_phone":alternativePhone,
"chosen_logistic_zone_id":logisticZoneId,
"tips":tips,
"shipping_delivery_type":shippingDeliveryType,
"timeslot":timeslot,
"scheduled_date":scheduledData,
"payment_method": paymentType,
});
ApiResponse response = await ApiRequest.post(url:url, header:header,body: postBody);
print("::: $postBody :::");
print("Order::: ${response.body}");
print("Order::: ${response.statusCode}");
if(response.result == true){
return ResponseModel(response.statusCode,orderCreateResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,OrderCreateResponse.init());
}
}
static Future<ResponseModel<OrderCreateResponse>> createOrderByCOD({required shippingId,
required billingId,
required phone,
required alternativePhone,
required logisticZoneId,
required tips,
required shippingDeliveryType,
required timeslot,
required scheduledData
})async{
var url = "${AppConfig.apiUrl}/order/cod";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCouponHeader());
header.addAll(getCurrencyHeader());
var postBody = jsonEncode({
"shipping_address_id":shippingId,
"billing_address_id":billingId,
"phone":phone,
"alternative_phone":alternativePhone,
"chosen_logistic_zone_id":logisticZoneId,
"tips":tips,
"shipping_delivery_type":shippingDeliveryType,
"timeslot":timeslot,
"scheduled_date":scheduledData,
});
ApiResponse response = await ApiRequest.post(url:url, header:header,body: postBody);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,orderCreateResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,OrderCreateResponse.init());
}
}
static Future<ResponseModel<OrderCreateResponse>> createOrderByWallet({required shippingId,
required billingId,
required phone,
required alternativePhone,
required logisticZoneId,
required tips,
required shippingDeliveryType,
required timeslot,
required scheduledData
})async{
var url = "${AppConfig.apiUrl}/order/wallet";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCouponHeader());
header.addAll(getCurrencyHeader());
var postBody = jsonEncode({
"shipping_address_id":shippingId,
"billing_address_id":billingId,
"phone":phone,
"alternative_phone":alternativePhone,
"chosen_logistic_zone_id":logisticZoneId,
"tips":tips,
"shipping_delivery_type":shippingDeliveryType,
"timeslot":timeslot,
"scheduled_date":scheduledData,
});
ApiResponse response = await ApiRequest.post(url:url, header:header,body: postBody);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,orderCreateResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,OrderCreateResponse.init());
}
}
static Future<ResponseModel<TimeSlotResponse>> getTimeSlot()async{
var url = "${AppConfig.apiUrl}/time-slot";
Map<String,String> header = getCommonHeader();
header.addAll(getCurrencyHeader());
print(":: $url ::");
ApiResponse response = await ApiRequest.get(url, header);
print("TimeSlot== ${response.statusCode}");
print("TimeSlot== ${response.body}");
if(response.result){
return ResponseModel(response.statusCode,timeSlotResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,TimeSlotResponse(days: 1,timeSlots: []));
}
}
static Future<ResponseModel<List<PaymentTypesResponse>>> getPaymentTypes()async{
var url = "${AppConfig.apiUrl}/payment-types";
Map<String,String> header = getCommonHeader();
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get( url, header);
if(response.result){
return ResponseModel(response.statusCode,paymentTypesResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,[]);
}
}
static Future<ResponseModel<TrackOrderResponse>> trackOrder(id)async{
var url = "${AppConfig.apiUrl}/order/track-order?code=$id";
Map<String,String> header = getCommonHeader();
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get( url, header);
print(response.body);
if(response.result){
return ResponseModel(response.statusCode,trackOrderResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,trackOrderResponseFromJson(''));
}
}
}

View File

@@ -0,0 +1,27 @@
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/models/page_response.dart';
import 'package:grostore/models/response_model.dart';
class PageApi{
static Future<ResponseModel<PageResponse>> getPage({required String slug})
async{
var url = "${AppConfig.apiUrl}/pages/$slug";
Map<String,String> header = getCommonHeader();
ApiResponse response = await ApiRequest.get( url, header);
if(response.result){
return ResponseModel(response.statusCode,pageResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode, pageResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,95 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/custom_classes/system_data.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/product_details_response.dart';
import 'package:grostore/models/product_mini_response.dart';
class ProductApi {
static Future<ResponseModel<ProductMiniResponse>> getAllProducts({
String? categoryId='',min_price='',max_price='',search='',page
}) async {
var url = "${AppConfig.apiUrl}/products?page=$page&search=$search&min_price=$min_price&max_price=$max_price&category_id=$categoryId";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
print("Url2:::$url:::");
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
print("Response::=== ${response.body}=====");
if (response.result) {
print("Respnse::=== ${response.body}=====");
return ResponseModel(
response.statusCode,
productMiniResponseFromJson(response.body));
} else {
return ResponseModel(response.statusCode, ProductMiniResponse(data: []));
}
}
static Future<ResponseModel<ProductMiniResponse>> bestSelling(
BuildContext context) async {
var url = "${AppConfig.apiUrl}/products/best-selling";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return ResponseModel(
response.statusCode, productMiniResponseFromJson(response.body));
} else {
return ResponseModel(response.statusCode, ProductMiniResponse(data: []));
}
}
static Future<ResponseModel<ProductMiniResponse>> relatedProducts(
BuildContext context, String slug) async {
var url = "${AppConfig.apiUrl}/products/related";
var postBody = jsonEncode({"slug": slug});
print("Releted:: ${postBody} ::");
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
header.addAll(getCurrencyHeader());
ApiResponse response =
await ApiRequest.post(url: url, header: header, body: postBody);
if (response.result) {
return ResponseModel(
response.statusCode, productMiniResponseFromJson(response.body));
} else {
return ResponseModel(response.statusCode, ProductMiniResponse(data: []));
}
}
static Future<ResponseModel<ProductDetailsResponse>> details(
BuildContext context, String slug) async {
var url = "${AppConfig.apiUrl}/products/$slug";
Map<String, String> header = getCommonHeader();
// header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
print("Details::: ${response.body}::");
if (response.result) {
return ResponseModel(
response.statusCode, productDetailsResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode,
ProductDetailsResponse(
result: false, data: ProductDetailsInfo.init(), status: 400));
}
}
}

View File

@@ -0,0 +1,65 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/common_response.dart';
import 'package:grostore/models/coupon_response.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/refund_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/wallet_history_response.dart';
class RefundApi{
static Future<ResponseModel<RefundResponse>> getRefundHistory(page)async{
var url = "${AppConfig.apiUrl}/refunds?page=$page";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
debugPrint(response.body);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,refundResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,refundResponseFromJson(""));
}
}
static Future<ResponseModel<CommonResponse>> refundRequest(order_item_id,reason)async{
var url = "${AppConfig.apiUrl}/refund/request";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
var postBody = jsonEncode({
"order_item_id":order_item_id,
"refund_reason":reason
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.post(url:url, body: postBody,header:header);
debugPrint(response.body);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,commonResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,commonResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,46 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/coupon_response.dart';
import 'package:grostore/models/help_center_response.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/refund_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/setting_response.dart';
import 'package:grostore/models/wallet_history_response.dart';
class SettingApi{
static Future<ResponseModel<SettingResponse>> getSettings()async{
var url = "${AppConfig.apiUrl}/settings";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,settingResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,settingResponseFromJson(""));
}
}
static Future<ResponseModel<HelpCenterResponse>> getHelpCenter()async{
var url = "${AppConfig.apiUrl}/settings/help-center";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
ApiResponse response = await ApiRequest.get(url, header);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,helpCenterResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,helpCenterResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,71 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/cart_response.dart';
import 'package:grostore/models/order/order_summery_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/user/addresses_response.dart';
import '../models/common_response.dart';
class UserApi {
static Future<AddressesResponse> getAddresses() async {
var url = "${AppConfig.apiUrl}/address";
Map<String, String> header = getCommonHeader();
header.addAll({"Authorization": "Bearer ${access_token.$}"});
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return addressesResponseFromJson(response.body);
} else {
return AddressesResponse(data: []);
}
}
static Future<ResponseModel<CommonResponse>> updateProfile(
{File? file, String? name, String? phone}) async {
try {
var url = "${AppConfig.apiUrl}/customer-profile/update";
Map<String, String> header = getCommonHeader();
header.addAll({"Authorization": "Bearer ${access_token.$}"});
print(header);
Map<String, String>? body = {};
if (name != null && phone != null) {
body = {"name": name, "phone": phone};
}
ApiResponse response = await ApiRequest.fileReq(
url: url, header: header, body: body, file: file);
if (response.result) {
return ResponseModel(200, commonResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
}
} catch (e) {
log("Erorrr======?>>>>>${e.toString()}");
return ResponseModel(500, commonResponseFromJson(e.toString()));
}
}
static Future<ResponseModel<CommonResponse>> updatePassword(body) async {
var url = "${AppConfig.apiUrl}/customer-profile/change-password";
Map<String, String> header = getCommonHeader();
header.addAll({"Authorization": "Bearer ${access_token.$}"});
ApiResponse response =
await ApiRequest.post(url: url, header: header, body: body);
print(response.body);
if (response.result) {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
}
}
}

View File

@@ -0,0 +1,33 @@
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/coupon_response.dart';
import 'package:grostore/models/home_banner_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/wallet_history_response.dart';
class WalletApi{
static Future<ResponseModel<WalletHistoryResponse>> getWalletHistory(page)async{
var url = "${AppConfig.apiUrl}/wallet-histories?page=$page";
Map<String,String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$
};
header.addAll({
"Authorization":"Bearer ${access_token.$}"
});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
debugPrint(response.body);
if(response.statusCode== 200 && response.result){
return ResponseModel(response.statusCode,walletHistoryResponseFromJson(response.body));
}else{
return ResponseModel(response.statusCode,walletHistoryResponseFromJson(""));
}
}
}

View File

@@ -0,0 +1,99 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:grostore/api_request.dart';
import 'package:grostore/configs/app_config.dart';
import 'package:grostore/custom_classes/system_data.dart';
import 'package:grostore/helpers/common_functions.dart';
import 'package:grostore/helpers/shared_value_helper.dart';
import 'package:grostore/models/common_response.dart';
import 'package:grostore/models/response_model.dart';
import 'package:grostore/models/product_details_response.dart';
import 'package:grostore/models/product_mini_response.dart';
import 'package:grostore/models/wishlist_response.dart';
class WishlistApi {
static Future<ResponseModel<WishlistResponse>> getWishlist() async {
var url = "${AppConfig.apiUrl}/wishlist";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
header.addAll({"Authorization": "Bearer ${access_token.$}"});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return ResponseModel(
response.statusCode, wishlistResponseFromJson(response.body));
} else {
return ResponseModel(response.statusCode, WishlistResponse(data: []));
}
}
static Future<ResponseModel<CommonResponse>> checkWishlist(id) async {
var url = "${AppConfig.apiUrl}/wishlist/check/$id";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
header.addAll({"Authorization": "Bearer ${access_token.$}"});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode, CommonResponse(result: false, message: ""));
}
}
static Future<ResponseModel<CommonResponse>> deleteWishlist(id) async {
var url = "${AppConfig.apiUrl}/delete-wishlist/$id";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
header.addAll({"Authorization": "Bearer ${access_token.$}"});
header.addAll(getCurrencyHeader());
ApiResponse response = await ApiRequest.get(url, header);
if (response.result) {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode, CommonResponse(result: false, message: ""));
}
}
static Future<ResponseModel<CommonResponse>> addWishlist(id) async {
var url = "${AppConfig.apiUrl}/add-to-wishlist";
Map<String, String> header = {
"Accept": "application/json",
"Content-Type": "application/json",
"App-Language": app_language.$,
"Stock-Location-Id": stock_location_id.$
};
header.addAll({"Authorization": "Bearer ${access_token.$}"});
header.addAll(getCurrencyHeader());
var postBody = jsonEncode({"product_id": id});
ApiResponse response =
await ApiRequest.post(body: postBody, url: url, header: header);
if (response.result) {
return ResponseModel(
response.statusCode, commonResponseFromJson(response.body));
} else {
return ResponseModel(
response.statusCode, CommonResponse(result: false, message: ""));
}
}
}