getOrders method
Implementation
void getOrders(int page, GetOrders getOrders) async {
getOrders.onLoading();
final url = "https://api.plentrasphere.com/v2/client/index.php";
final body = {
'class': 'orders',
"appKey": appKey,
"action": "getOrders",
"page": page.toString(),
};
try {
final response = await http.post(Uri.parse(url),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization': 'Bearer $token'
},
body: body);
final data = json.decode(response.body);
int code = data['response']['code'];
String status = data['response']['status'];
if (code == 400) {
if (status == "no-orders") {
getOrders.onEmpty();
getOrders.onNoNextPage();
getOrders.onLoadfinished();
return;
}
if (status == "please-login" || status == "session-expired") {
getOrders.onNotLoggedIn();
getOrders.onLoadfinished();
return;
}
if (status == "app-expired") {
getOrders.onAppNotActive(data['info']['appName']);
getOrders.onLoadfinished();
return;
}
getOrders.onError(status);
getOrders.onLoadfinished();
return;
}
Map<String, dynamic> info = data['info'];
if (info['nextPage']['status']) {
getOrders.onNextPage(info['nextPage']['page']);
} else {
getOrders.onNoNextPage();
}
if (info['totalItemCount'] == 0) {
getOrders.onEmpty();
getOrders.onLoadfinished();
return;
}
getOrders.onResult(
info['appName'],
info['totalItemCount'],
info['itemsInThisPage'],
info['itemsPerPage'],
data['orders'],
);
getOrders.onLoadfinished();
} catch (e) {
getOrders.onError(e.toString());
getOrders.onLoadfinished();
}
}