Skip to content

Commit 5441c37

Browse files
committed
Orders api is broken
1 parent 8f6cce6 commit 5441c37

File tree

13 files changed

+558
-1
lines changed

13 files changed

+558
-1
lines changed

gogrocy/assets/images/orders.png

1.03 KB
Loading

gogrocy/lib/core/models/Bill.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import 'package:gogrocy/core/models/Detail.dart';
2+
3+
class Bill {
4+
String bill_id;
5+
List<Detail> details;
6+
7+
Bill({this.bill_id, this.details});
8+
9+
factory Bill.fromJson(Map<String, dynamic> json) {
10+
return Bill(
11+
bill_id: json['bill_id'],
12+
details: json['details'] != null ? (json['details'] as List).map((i) => Detail.fromJson(i)).toList() : null,
13+
);
14+
}
15+
16+
Map<String, dynamic> toJson() {
17+
final Map<String, dynamic> data = new Map<String, dynamic>();
18+
data['bill_id'] = this.bill_id;
19+
if (this.details != null) {
20+
data['details'] = this.details.map((v) => v.toJson()).toList();
21+
}
22+
return data;
23+
}
24+
}

gogrocy/lib/core/models/Detail.dart

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
class Detail {
2+
String bill_id;
3+
String image;
4+
String name;
5+
String order_date;
6+
String order_id;
7+
String order_qty;
8+
String payment_stat;
9+
String price;
10+
String product_id;
11+
String seller_name;
12+
String seller_number;
13+
String status;
14+
15+
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});
16+
17+
factory Detail.fromJson(Map<String, dynamic> json) {
18+
return Detail(
19+
bill_id: json['bill_id'],
20+
image: json['image'],
21+
name: json['name'],
22+
order_date: json['order_date'],
23+
order_id: json['order_id'],
24+
order_qty: json['order_qty'],
25+
payment_stat: json['payment_stat'],
26+
price: json['price'],
27+
product_id: json['product_id'],
28+
seller_name: json['seller_name'],
29+
seller_number: json['seller_number'],
30+
status: json['status'],
31+
);
32+
}
33+
34+
Map<String, dynamic> toJson() {
35+
final Map<String, dynamic> data = new Map<String, dynamic>();
36+
data['bill_id'] = this.bill_id;
37+
data['image'] = this.image;
38+
data['name'] = this.name;
39+
data['order_date'] = this.order_date;
40+
data['order_id'] = this.order_id;
41+
data['order_qty'] = this.order_qty;
42+
data['payment_stat'] = this.payment_stat;
43+
data['price'] = this.price;
44+
data['product_id'] = this.product_id;
45+
data['seller_name'] = this.seller_name;
46+
data['seller_number'] = this.seller_number;
47+
data['status'] = this.status;
48+
return data;
49+
}
50+
}

gogrocy/lib/core/models/Orders.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import 'package:gogrocy/core/models/Result.dart';
2+
3+
class Orders {
4+
bool empty;
5+
Result result;
6+
7+
Orders({this.empty, this.result});
8+
9+
factory Orders.fromJson(Map<String, dynamic> json) {
10+
return Orders(
11+
empty: json['empty'],
12+
result: json['result'] != null ? Result.fromJson(json['result']) : null,
13+
);
14+
}
15+
16+
Map<String, dynamic> toJson() {
17+
final Map<String, dynamic> data = new Map<String, dynamic>();
18+
data['empty'] = this.empty;
19+
if (this.result != null) {
20+
data['result'] = this.result.toJson();
21+
}
22+
return data;
23+
}
24+
}

gogrocy/lib/core/models/Result.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import 'package:gogrocy/core/models/Address.dart';
2+
import 'package:gogrocy/core/models/Bill.dart';
3+
4+
class Result {
5+
List<Address> address;
6+
List<Bill> bills;
7+
8+
Result({this.address, this.bills});
9+
10+
factory Result.fromJson(Map<String, dynamic> json) {
11+
return Result(
12+
address: json['address'] != null ? (json['address'] as List).map((i) => Address.fromJson(i)).toList() : null,
13+
bills: json['bills'] != null ? (json['bills'] as List).map((i) => Bill.fromJson(i)).toList() : null,
14+
);
15+
}
16+
17+
Map<String, dynamic> toJson() {
18+
final Map<String, dynamic> data = new Map<String, dynamic>();
19+
if (this.address != null) {
20+
data['address'] = this.address.map((v) => v.toJson()).toList();
21+
}
22+
if (this.bills != null) {
23+
data['bills'] = this.bills.map((v) => v.toJson()).toList();
24+
}
25+
return data;
26+
}
27+
}

gogrocy/lib/core/services/api.dart

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:convert';
22
import 'dart:io';
33
import 'package:flutter/material.dart';
44
import 'package:gogrocy/core/models/Address.dart';
5+
import 'package:gogrocy/core/models/Orders.dart';
56
import 'package:gogrocy/core/models/cart_edit.dart';
67
import 'package:gogrocy/core/models/cart_list.dart';
78
import 'package:gogrocy/core/models/product.dart';
@@ -26,6 +27,8 @@ const String addAddress = baseUrl + "add_address";
2627
const String cartList = baseUrl + 'getCartItems';
2728
const String editCart=baseUrl+ "add_to_cart";
2829
const String getAddress=baseUrl+"getAddress";
30+
const String orderRequest=baseUrl+"placeOrder";
31+
const String getOrders=baseUrl+"getorders";
2932

3033
class Apis {
3134
final SharedPrefsService _sharedPrefsService = locator<SharedPrefsService>();
@@ -146,6 +149,24 @@ class Apis {
146149
(print("Network failure"));
147150
}
148151

152+
Future<bool> placeOrder(
153+
{@required String address_id}) async {
154+
Map<String,String>body={
155+
"address_id":address_id,
156+
};
157+
String jwt=await _sharedPrefsService.getJWT();
158+
var client = new http.Client();
159+
bool connectionState = await checkStatus();
160+
if (connectionState) //TODO: Add a proper else return
161+
{
162+
var response = await client.post(orderRequest, headers: {
163+
'Authorization': 'Bearer $jwt',
164+
},body: body);
165+
return true;
166+
} else
167+
return false;
168+
}
169+
149170
Future<List<Product>> getAllProducts() async {
150171
var client = new http.Client();
151172
bool connectionState = await checkStatus();
@@ -185,6 +206,24 @@ class Apis {
185206
(print("Network failure"));
186207
}
187208

209+
Future<Orders> getOrders() async{
210+
var client = new http.Client();
211+
bool connectionState = await checkStatus();
212+
String jwt=await _sharedPrefsService.getJWT();
213+
if (connectionState) //TODO: Add a proper else return
214+
{
215+
var response = await client.post(getAddress, headers: {
216+
'Content-Type': 'application/json',
217+
'Accept': 'application/json',
218+
'Authorization': 'Bearer $jwt',
219+
});
220+
return json.decode(response.body);
221+
} else
222+
(print("Network failure"));
223+
}
224+
225+
226+
188227

189228
Future<cart_list> getCartList() async {
190229
var client = new http.Client();
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:gogrocy/core/enums/viewstate.dart';
3+
import 'package:gogrocy/core/models/Orders.dart';
4+
import 'package:gogrocy/core/services/api.dart';
5+
import 'package:gogrocy/core/viewModels/base_model.dart';
6+
import 'package:gogrocy/service_locator.dart';
7+
8+
class OrderViewModel extends BaseModel {
9+
10+
Orders orders;
11+
12+
Future getOrders()async{
13+
setState(ViewState.Busy);
14+
Apis _apis=locator<Apis>();
15+
orders=await _apis.getOrders();
16+
setState(ViewState.Idle);
17+
}
18+
19+
20+
21+
}

gogrocy/lib/service_locator.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:gogrocy/core/services/navigation_service.dart';
55
import 'package:gogrocy/core/services/shared_prefs.dart';
66
import 'package:gogrocy/core/viewModels/cart_view_model.dart';
77
import 'package:gogrocy/core/viewModels/login_model.dart';
8+
import 'package:gogrocy/core/viewModels/orderLis_model.dart';
89
import 'package:gogrocy/core/viewModels/startup_view_model.dart';
910
import 'package:gogrocy/ui/views/signup_view.dart';
1011
import 'package:gogrocy/core/services/api.dart';
@@ -22,6 +23,7 @@ void setupLocator() {
2223
locator.registerFactory<LoginModel>(() => LoginModel());
2324
locator.registerLazySingleton(()=>Apis());
2425
locator.registerFactory(()=>AllProductsModel());
26+
locator.registerFactory(()=>OrderViewModel());
2527
locator.registerFactory(()=>CartViewModel());
2628
locator.registerFactory(()=>BottomNavBarProvider());
2729
}

gogrocy/lib/ui/views/cart/cart.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:gogrocy/core/enums/viewstate.dart';
33
import 'package:gogrocy/core/viewModels/cart_view_model.dart';
44
import 'package:gogrocy/ui/views/base_view.dart';
55
import 'package:gogrocy/ui/views/cart/cart_bill.dart';
6+
import 'package:gogrocy/ui/views/cart/cart_footer.dart';
67
import 'package:gogrocy/ui/views/cart/cart_list.dart';
78
import 'package:flutter/material.dart';
89
import 'package:gogrocy/core/enums/viewstate.dart';
@@ -35,8 +36,10 @@ class Cart extends StatelessWidget {
3536
CartHeader(model: model.cartList,checkoutButtonPressed: (){scrollController.animateTo(scrollController.position.maxScrollExtent, duration: Duration(milliseconds: 500), curve: Curves.easeIn);print("Callback succeeds");},),
3637
CartList(model, model.intermediateCartList),
3738
CartBill(model.cartList,),
39+
CartFooter(model),
3840
SizedBox(height: 50,),
3941

42+
4043
],
4144
);
4245
} else
@@ -47,6 +50,7 @@ class Cart extends StatelessWidget {
4750
CartHeader(model:model.cartList,checkoutButtonPressed:(){scrollController.animateTo(scrollController.position.maxScrollExtent, duration: Duration(milliseconds: 500), curve: Curves.easeIn);print("Callback succeeds");}),
4851
CartList(model, model.cartList),
4952
CartBill(model.cartList),
53+
CartFooter(model),
5054
SizedBox(height: 50,),
5155

5256
],

0 commit comments

Comments
 (0)