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); }
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)); }