public ActionResult Get([FromBody] PetControllerRootGet payload) { // Check if payload is present if (payload == null) { return(BadRequest("PetController (GET) - Missing payload.")); } try { // Get user from user service and return it var pet = _petService.GetPet(payload); if (pet == null) { return(NotFound("PetController (GET) - User not found.")); } return(Content(JsonConvert.SerializeObject(pet))); } catch (InvalidCastException e) { // Return 422 if we can't parse the pet identifier as GUID return(UnprocessableEntity(e.Message)); } catch (InvalidDataException e) { // Return 400 if the payload contains invalid values return(BadRequest(e.Message)); } catch (Exception e) { // Return 500 if any other exception occurred return(Problem(e.Message, e.Source, 500, "PetController (GET)", e.GetType().ToString())); } }
public async Task ShouldGetPet() { // Arrange var userIdentifier = await Shared.CreateUser(Client); var petIdentifier = await Shared.CreatePet(Client, userIdentifier); var payload = new PetControllerRootGet { PetIdentifier = petIdentifier }; // Act // Get Pet var getPetResponse = await Shared.GetPet(Client, payload); // Assert var pet = JsonConvert.DeserializeObject <Pet>(await getPetResponse.Content.ReadAsStringAsync()); Assert.Equal(HttpStatusCode.OK, getPetResponse.StatusCode); Assert.Equal(pet.PetIdentifier, payload.PetIdentifier); Assert.Equal(pet.Happiness, PetDefaults.DefaultHappiness); Assert.Equal(pet.LastHappiness, PetDefaults.DefaultHappiness); Assert.Equal(pet.Hunger, PetDefaults.DefaultHunger); Assert.Equal(pet.LastHunger, PetDefaults.DefaultHunger); }
public Pet GetPet(PetControllerRootGet payload) { // Validate Payload DataValidator.ValidateGuid(payload.PetIdentifier); // Get User return(_storageService.GetPet(payload.PetIdentifier)); }