Skip to content

Commit

Permalink
Orders api is broken
Browse files Browse the repository at this point in the history
  • Loading branch information
Chinmay-KB committed Apr 26, 2020
1 parent 8f6cce6 commit 5441c37
Show file tree
Hide file tree
Showing 13 changed files with 558 additions and 1 deletion.
Binary file added gogrocy/assets/images/orders.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions gogrocy/lib/core/models/Bill.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import 'package:gogrocy/core/models/Detail.dart';

class Bill {
String bill_id;
List<Detail> details;

Bill({this.bill_id, this.details});

factory Bill.fromJson(Map<String, dynamic> json) {
return Bill(
bill_id: json['bill_id'],
details: json['details'] != null ? (json['details'] as List).map((i) => Detail.fromJson(i)).toList() : null,
);
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['bill_id'] = this.bill_id;
if (this.details != null) {
data['details'] = this.details.map((v) => v.toJson()).toList();
}
return data;
}
}
50 changes: 50 additions & 0 deletions gogrocy/lib/core/models/Detail.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
class Detail {
String bill_id;
String image;
String name;
String order_date;
String order_id;
String order_qty;
String payment_stat;
String price;
String product_id;
String seller_name;
String seller_number;
String status;

Detail({this.bill_id, this.image, this.name, this.order_date, this.order_id, this.order_qty, this.payment_stat, this.price, this.product_id, this.seller_name, this.seller_number, this.status});

factory Detail.fromJson(Map<String, dynamic> json) {
return Detail(
bill_id: json['bill_id'],
image: json['image'],
name: json['name'],
order_date: json['order_date'],
order_id: json['order_id'],
order_qty: json['order_qty'],
payment_stat: json['payment_stat'],
price: json['price'],
product_id: json['product_id'],
seller_name: json['seller_name'],
seller_number: json['seller_number'],
status: json['status'],
);
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['bill_id'] = this.bill_id;
data['image'] = this.image;
data['name'] = this.name;
data['order_date'] = this.order_date;
data['order_id'] = this.order_id;
data['order_qty'] = this.order_qty;
data['payment_stat'] = this.payment_stat;
data['price'] = this.price;
data['product_id'] = this.product_id;
data['seller_name'] = this.seller_name;
data['seller_number'] = this.seller_number;
data['status'] = this.status;
return data;
}
}
24 changes: 24 additions & 0 deletions gogrocy/lib/core/models/Orders.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import 'package:gogrocy/core/models/Result.dart';

class Orders {
bool empty;
Result result;

Orders({this.empty, this.result});

factory Orders.fromJson(Map<String, dynamic> json) {
return Orders(
empty: json['empty'],
result: json['result'] != null ? Result.fromJson(json['result']) : null,
);
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['empty'] = this.empty;
if (this.result != null) {
data['result'] = this.result.toJson();
}
return data;
}
}
27 changes: 27 additions & 0 deletions gogrocy/lib/core/models/Result.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:gogrocy/core/models/Address.dart';
import 'package:gogrocy/core/models/Bill.dart';

class Result {
List<Address> address;
List<Bill> bills;

Result({this.address, this.bills});

factory Result.fromJson(Map<String, dynamic> json) {
return Result(
address: json['address'] != null ? (json['address'] as List).map((i) => Address.fromJson(i)).toList() : null,
bills: json['bills'] != null ? (json['bills'] as List).map((i) => Bill.fromJson(i)).toList() : null,
);
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.address != null) {
data['address'] = this.address.map((v) => v.toJson()).toList();
}
if (this.bills != null) {
data['bills'] = this.bills.map((v) => v.toJson()).toList();
}
return data;
}
}
39 changes: 39 additions & 0 deletions gogrocy/lib/core/services/api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gogrocy/core/models/Address.dart';
import 'package:gogrocy/core/models/Orders.dart';
import 'package:gogrocy/core/models/cart_edit.dart';
import 'package:gogrocy/core/models/cart_list.dart';
import 'package:gogrocy/core/models/product.dart';
Expand All @@ -26,6 +27,8 @@ const String addAddress = baseUrl + "add_address";
const String cartList = baseUrl + 'getCartItems';
const String editCart=baseUrl+ "add_to_cart";
const String getAddress=baseUrl+"getAddress";
const String orderRequest=baseUrl+"placeOrder";
const String getOrders=baseUrl+"getorders";

class Apis {
final SharedPrefsService _sharedPrefsService = locator<SharedPrefsService>();
Expand Down Expand Up @@ -146,6 +149,24 @@ class Apis {
(print("Network failure"));
}

Future<bool> placeOrder(
{@required String address_id}) async {
Map<String,String>body={
"address_id":address_id,
};
String jwt=await _sharedPrefsService.getJWT();
var client = new http.Client();
bool connectionState = await checkStatus();
if (connectionState) //TODO: Add a proper else return
{
var response = await client.post(orderRequest, headers: {
'Authorization': 'Bearer $jwt',
},body: body);
return true;
} else
return false;
}

Future<List<Product>> getAllProducts() async {
var client = new http.Client();
bool connectionState = await checkStatus();
Expand Down Expand Up @@ -185,6 +206,24 @@ class Apis {
(print("Network failure"));
}

Future<Orders> getOrders() async{
var client = new http.Client();
bool connectionState = await checkStatus();
String jwt=await _sharedPrefsService.getJWT();
if (connectionState) //TODO: Add a proper else return
{
var response = await client.post(getAddress, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer $jwt',
});
return json.decode(response.body);
} else
(print("Network failure"));
}




Future<cart_list> getCartList() async {
var client = new http.Client();
Expand Down
21 changes: 21 additions & 0 deletions gogrocy/lib/core/viewModels/orderLis_model.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:flutter/material.dart';
import 'package:gogrocy/core/enums/viewstate.dart';
import 'package:gogrocy/core/models/Orders.dart';
import 'package:gogrocy/core/services/api.dart';
import 'package:gogrocy/core/viewModels/base_model.dart';
import 'package:gogrocy/service_locator.dart';

class OrderViewModel extends BaseModel {

Orders orders;

Future getOrders()async{
setState(ViewState.Busy);
Apis _apis=locator<Apis>();
orders=await _apis.getOrders();
setState(ViewState.Idle);
}



}
2 changes: 2 additions & 0 deletions gogrocy/lib/service_locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:gogrocy/core/services/navigation_service.dart';
import 'package:gogrocy/core/services/shared_prefs.dart';
import 'package:gogrocy/core/viewModels/cart_view_model.dart';
import 'package:gogrocy/core/viewModels/login_model.dart';
import 'package:gogrocy/core/viewModels/orderLis_model.dart';
import 'package:gogrocy/core/viewModels/startup_view_model.dart';
import 'package:gogrocy/ui/views/signup_view.dart';
import 'package:gogrocy/core/services/api.dart';
Expand All @@ -22,6 +23,7 @@ void setupLocator() {
locator.registerFactory<LoginModel>(() => LoginModel());
locator.registerLazySingleton(()=>Apis());
locator.registerFactory(()=>AllProductsModel());
locator.registerFactory(()=>OrderViewModel());
locator.registerFactory(()=>CartViewModel());
locator.registerFactory(()=>BottomNavBarProvider());
}
4 changes: 4 additions & 0 deletions gogrocy/lib/ui/views/cart/cart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:gogrocy/core/enums/viewstate.dart';
import 'package:gogrocy/core/viewModels/cart_view_model.dart';
import 'package:gogrocy/ui/views/base_view.dart';
import 'package:gogrocy/ui/views/cart/cart_bill.dart';
import 'package:gogrocy/ui/views/cart/cart_footer.dart';
import 'package:gogrocy/ui/views/cart/cart_list.dart';
import 'package:flutter/material.dart';
import 'package:gogrocy/core/enums/viewstate.dart';
Expand Down Expand Up @@ -35,8 +36,10 @@ class Cart extends StatelessWidget {
CartHeader(model: model.cartList,checkoutButtonPressed: (){scrollController.animateTo(scrollController.position.maxScrollExtent, duration: Duration(milliseconds: 500), curve: Curves.easeIn);print("Callback succeeds");},),
CartList(model, model.intermediateCartList),
CartBill(model.cartList,),
CartFooter(model),
SizedBox(height: 50,),


],
);
} else
Expand All @@ -47,6 +50,7 @@ class Cart extends StatelessWidget {
CartHeader(model:model.cartList,checkoutButtonPressed:(){scrollController.animateTo(scrollController.position.maxScrollExtent, duration: Duration(milliseconds: 500), curve: Curves.easeIn);print("Callback succeeds");}),
CartList(model, model.cartList),
CartBill(model.cartList),
CartFooter(model),
SizedBox(height: 50,),

],
Expand Down
Loading

0 comments on commit 5441c37

Please sign in to comment.