Untitled
unknown
plain_text
4 years ago
2.5 kB
10
Indexable
namespace BrothersBOT.WebApp.Client.Services
{
public abstract class Service
{
protected StringContent ObterConteudo(object dado)
{
return new StringContent(
JsonSerializer.Serialize(dado),
Encoding.UTF8,
"application/json");
}
protected async Task<T> DeserializarObjetoResponse<T>(HttpResponseMessage responseMessage)
{
var options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
return JsonSerializer.Deserialize<T>(await responseMessage.Content.ReadAsStringAsync(), options);
}
protected bool TratarErrosResponse(HttpResponseMessage response)
{
switch ((int)response.StatusCode)
{
case 401:
case 403:
case 404:
case 500:
throw new CustomHttpRequestException(response.StatusCode);
case 400:
return false;
}
response.EnsureSuccessStatusCode();
return true;
}
}
}
public async Task<UsuarioRespostaLogin> Login(UsuarioLogin usuarioLogin)
{
var loginContent = ObterConteudo(usuarioLogin);
var response = await _httpClient.PostAsync("/api/identidade/autenticar", loginContent);
if (!TratarErrosResponse(response))
{
return new UsuarioRespostaLogin
{
ResponseResult = await DeserializarObjetoResponse<ResponseResult>(response)
};
}
return await DeserializarObjetoResponse<UsuarioRespostaLogin>(response);
}
public async Task<UsuarioRespostaLogin> Registro(UsuarioRegistro usuarioRegistro)
{
var registroContent = ObterConteudo(usuarioRegistro);
var response = await _httpClient.PostAsync("/api/identidade/nova-conta", registroContent);
if (!TratarErrosResponse(response))
{
return new UsuarioRespostaLogin
{
ResponseResult = await DeserializarObjetoResponse<ResponseResult>(response)
};
}
var teste = await DeserializarObjetoResponse<UsuarioRespostaLogin>(response);
return teste;
}Editor is loading...