createOrder method
Implementation
Future<CreateOrderResponse> createOrder(CreateOrderRequest order) async {
try {
_client = MyHttpClient(baseUrlTonder);
List<dynamic> items = [];
for (var i = 0; i <order.items!.length; i++) {
items.add(order.items?[i].toMap());
}
Map<String, dynamic> body = {
"business": order.business,
"client": order.client,
"billing_address_id": order.billing_address_id,
"shipping_address_id": order.shipping_address_id,
"amount": order.amount,
"status": order.status,
"reference": order.reference,
"is_oneclick": order.is_oneclick,
"items": items
};
Response? response = await _client?.post(
Uri.parse('api/v1/orders/'),
body: json.encode(body),
headers: {'Authorization': 'Token $apiKeyTonder'}
);
if (response!.statusCode >= 200 ||response.statusCode < 300) {
var jsonResponse = json.decode(response.body) as Map<String, dynamic>;
List<Items> responseItems = [];
for (var i = 0; i <jsonResponse['items']!.length; i++) {
responseItems.add(Items.fromJson(jsonResponse['items'][i]));
}
jsonResponse['items'] = responseItems;
return CreateOrderResponse.fromJson(jsonResponse);
} else {
throw Exception(response.statusCode);
}
} catch (e) {
throw Exception(e);
}
}