Untitled
unknown
plain_text
3 years ago
2.5 kB
4
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...