public void CanValidatePhotoRequestModel() { // Arrange var nasaPhotoRequest = new NasaPhotoRequest { apiKey = "DEMO_KEY" }; var baseEndpoint = "https://api.nasa.gov/mars-photos/api/v1/"; // Act var photoRepository = new NasaPhotoRepository(baseEndpoint); var response = photoRepository.Get(nasaPhotoRequest); // Assert Assert.IsTrue(response.StatusCode == System.Net.HttpStatusCode.BadRequest); }
public void CanGetPhotoResponseForCuriosity() { // Arrange var nasaPhotoRequest = new NasaPhotoRequest { apiKey = "DEMO_KEY", imageDate = DateTime.Today, rover = "curiosity" }; var baseEndpoint = "https://api.nasa.gov/mars-photos/api/v1/"; // Act var photoRepository = new NasaPhotoRepository(baseEndpoint); var response = photoRepository.Get(nasaPhotoRequest); // Assert Assert.IsTrue(response?.Content.Length > 0); }
public void CanGetOkStatusForSpirit() { // Arrange var nasaPhotoRequest = new NasaPhotoRequest { apiKey = "DEMO_KEY", imageDate = DateTime.Today, rover = "spirit" }; var baseEndpoint = "https://api.nasa.gov/mars-photos/api/v1/"; // Act var photoRepository = new NasaPhotoRepository(baseEndpoint); var response = photoRepository.Get(nasaPhotoRequest); // Assert Assert.IsTrue(response.IsSuccessful); }
public IHttpActionResult GetImagesByDate([FromUri] NasaPhotoRequest photoRequest) { // Check model validity if (!ModelState.IsValid) { var badRequestResponse = new BadRequest("Request is malformed", photoRequest); return(Content(HttpStatusCode.BadRequest, badRequestResponse)); } var imageRepo = new NasaPhotoRepository("https://api.nasa.gov/mars-photos/api/v1/"); // Get response from the service var response = imageRepo.Get(photoRequest); // Handle non-success states if (!response.IsSuccessful) { var responseObject = JsonConvert.DeserializeObject(response.Content); return(Content(response.StatusCode, responseObject)); } // Get an object from the response content var nasaImageResponse = JsonConvert.DeserializeObject <NasaPhotoResponse>(response.Content); // build the image path var imageFileService = new ImageFileService(photoRequest.savePath); // Get the image response try { return(Ok(imageFileService.HandleNasaResponse(nasaImageResponse))); } catch (Exception e) { var exception = new Exception("Unable to save photos. View InnerException for more details.", e); return(InternalServerError(exception)); } }