getAddresses method
Implementation
void getAddresses(GetAddresses getAddresses) async {
getAddresses.onLoading();
final url = "https://api.plentrasphere.com/v2/client/index.php";
final body = {
'class': 'address',
"appKey": appKey,
"action": "getAddresses",
};
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-addresses-available") {
getAddresses.onEmpty();
getAddresses.onLoadfinished();
return;
}
if (status == "session-expired" || status == "please-login") {
getAddresses.onNotLoggedIn();
getAddresses.onLoadfinished();
return;
}
if (status == "app-expired") {
getAddresses.onAppNotActive(data['info']['appName']);
getAddresses.onLoadfinished();
return;
}
getAddresses.onError(status);
getAddresses.onLoadfinished();
return;
}
List<Map<String, dynamic>> addresses = [];
data['addresses'].forEach((address) {
addresses.add({
"addressId": address['addressId'],
"name": address['addressInfo']['name'],
"address": address['addressInfo']['address'],
"city": address['addressInfo']['city'],
"state": address['addressInfo']['state'],
"postalCode": address['addressInfo']['postalCode'],
"phoneNumber": address['addressInfo']['phoneNumber'],
"lat": address['addressInfo']['lat'],
"lng": address['addressInfo']['lng'],
"default": address['default'],
});
});
getAddresses.onResult(
data['info']['appName'], data['info']['itemCount'], addresses);
getAddresses.onLoadfinished();
} catch (e) {
getAddresses.onError(e.toString());
getAddresses.onLoadfinished();
}
}