public async Task <PagSeguroBoletoResponse> CreateBoletoAsync(PagSeguroBoletoRequest request) { try { _logger.LogInformation($"Creating Boleto - {request.Reference}"); var queryString = new Dictionary <string, string> { { nameof(_settings.Email).ToLower(), _settings.Email }, { nameof(_settings.Token).ToLower(), _settings.Token } }; using var response = await _client.PostAsJsonAsync(_settings.BoletoRequestUrl, request, _settings.Encoding, queryString); if (!response.IsSuccessStatusCode) { throw new PagSeguroException(response.StatusCode, await PagSeguroExceptionHelper .HandlePagSeguroInvalidRequest(response)); } var result = await response.Content.ReadAsJsonAsync <PagSeguroBoletoResponse>(); return(result); } catch (PagSeguroException e) { _logger.LogError($"Failed to create boleto {request.Reference}", e); throw e; } }
public async Task <Boleto> CreateBoletoAsync(BoletoRequest request) { var boletoRequest = new PagSeguroBoletoRequest(); try { var boleto = await _boletoService.CreateBoletoAsync(boletoRequest); // TODO map to boleto return(new Boleto()); } catch (PagSeguroException e) { _log.LogError($"Error creating boleto on {nameof(PagSeguroGateway)} | {e.Errors}"); // TODO map to domain exception throw; } }