public async Task <GetByEarthDateResponse> GetImagesAsync(GetByEarthDateRequest request)
        {
            HttpResponseMessage response = await MakeRequest(request);

            response.EnsureSuccessStatusCode();
            return(await DeserializeResponse(response));
        }
 private async Task <HttpResponseMessage> MakeRequest(GetByEarthDateRequest request)
 {
     using (HttpClient httpClient = new HttpClient())
     {
         var queryParameters = GetQueryString(request);
         return(await httpClient.GetAsync(@"https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?" + queryParameters));
     }
 }
        private string GetQueryString(GetByEarthDateRequest request)
        {
            var queryString = $"earth_date={request.Date.Value.ToString("yyyy-MM-dd")}";

            if (!string.IsNullOrEmpty(request.Camera))
            {
                queryString += $"&camera={request.Camera}";
            }
            queryString += "&api_key=GZJxTcYqUUuZ4NTnFWhBXjd71AJASmWSQ2kpAskN";
            return(queryString);
        }
Ejemplo n.º 4
0
        public async void GetImages_WithValidRequest_ReturnsResults()
        {
            var expected       = 5;
            var imageRetriever = GetMockImageRetrieverThatReturnsXResults(5);
            var request        = new GetByEarthDateRequest {
                Date = new DateTime()
            };

            var response = await imageRetriever.GetImagesAsync(request);

            Assert.Equal(expected, response.Count());
        }
        public async Task <ActionResult <GetByEarthDateResponse> > GetImagesAsync([FromQuery] GetByEarthDateRequest request)
        {
            var images = await _retriever.GetImagesAsync(request);

            return(Ok(images));
        }