getPreco method
Future<List<Preco> >
getPreco({
- required List<
Objeto> objetos, - required Autorizacao autorizacao,
- required TipoRemessa tipoRemessa,
Implementation
Future<List<Preco>> getPreco(
{required List<Objeto> objetos,
required Autorizacao autorizacao,
required TipoRemessa tipoRemessa}) async {
var uri = Uri.parse(
"https://api.correios.com.br/preco/v1/${tipoRemessa == TipoRemessa.nacional ? "nacional" : "internacional"}");
var headers = {
"Content-Type": "application/json",
'accept': 'application/json',
'Authorization': 'Bearer ${autorizacao.token}'
};
var produtos = objetos.map((e) => e.toMap()).toList();
var json = jsonEncode({"idLote": "1", "parametrosProduto": produtos});
http.Response response =
await _httpClient.post(uri, headers: headers, body: json);
switch (response.statusCode) {
case 200:
List<dynamic> precos = jsonDecode(response.body);
return precos
.map((precoProduto) => Preco.fromJson(precoProduto))
.toList();
case 400:
print("Dados enviados: $json");
print(response.body);
throw "Dados insuficientes ou incompletos";
case 500:
throw "Erro no servidor";
default:
print("${response.reasonPhrase} ${response.body}");
throw "Erro não identificado";
}
}