Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }