Estou fazendo o codigo um pouco diferente do curso, mas é basicamente o mesmo somente com as classes diferente, porem estou com duvida em como eu crio um objeto do tipo Cliente porem o retorno do metodo é Future
Tenho estes 2 codigos e quero passar para o metodo Auth, o cliente retornado pelo findCliente(), a forma que eu tentei foi essa:
Cliente cliente = findCliente(1) as Cliente;
Auth(cliente);
Future<Cliente> findCliente(int cpf) async {
final Response response =
await client.get(Uri.parse('http://192.168.0.16:8080/cliente/$cpf'));
final Map<String, dynamic> decodedJson = jsonDecode(response.body);
final Cliente cliente = Cliente(
decodedJson['cpf'],
decodedJson['email'],
decodedJson['nomeCompleto'],
decodedJson['senha'],
decodedJson['numeroCelular'],
decodedJson['fotoPerfil'],
decodedJson['logradouro'],
decodedJson['tipoUsuario'],
);
return cliente;
}
Future<String> Auth(Cliente cliente) async {
final Map<String, dynamic> clienteMap = {
'cpf': cliente.cpf,
'email': cliente.email,
'nomeCompleto': cliente.nomeCompleto,
'senha': cliente.senha,
'numeroCelular': cliente.numero_cel,
'fotoPerfil': cliente.foto_perfil,
'logradouro': cliente.logradouro,
};
final String clienteJson = jsonEncode(clienteMap);
final Response response =
await client.post(Uri.parse('http://192.168.0.16:8080/auth'),
headers: {
'Content-type': 'application/json',
},
body: clienteJson);
Map<String, dynamic> json = jsonDecode(response.body);
final String token = json['token'];
final String tipo = json['tipo'];
return tipo + token;
}