public async Task <IActionResult> Get([FromRoute] GetUserRepositoriesRequest request) { try { var repositories = await _gitHubRepositoryService.GetRepositoriesAsync(request).ConfigureAwait(false); return(Ok(repositories)); } catch (Exception exception) { _logger.LogError(exception, exception.Message); return(StatusCode((int)HttpStatusCode.InternalServerError)); } }
public async Task <List <GitHubRepositoryResponse> > GetRepositoriesAsync(GetUserRepositoriesRequest request) { var httpRequest = new HttpRequestMessage(HttpMethod.Get, $@"/users/{request.UserName}/repos"); var httpResponse = await _httpClient.SendAsync(httpRequest).ConfigureAwait(false); if (!httpResponse.IsSuccessStatusCode) { throw new Exception(httpResponse.ReasonPhrase); } var repositories = JsonConvert.DeserializeObject <List <GitHubRepositoryResponse> >(await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); return(repositories); }
public async Task <IActionResult> Get([FromRoute] GetUserRepositoriesRequest request) { if (!request?.IsValid() ?? false) { return(BadRequest()); } var httpRequest = new HttpRequestMessage(HttpMethod.Get, $@"/users/{request.UserName}/repos"); var httpResponse = await _httpClient.SendAsync(httpRequest).ConfigureAwait(false); if (!httpResponse.IsSuccessStatusCode) { return(StatusCode((int)HttpStatusCode.InternalServerError, httpResponse.ReasonPhrase)); } var repositories = JsonConvert.DeserializeObject <List <GitHubRepositoryResponse> >(await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); return(Ok(repositories)); }