diff --git a/readme.md b/readme.md index 9716689b86eec356b8c4090db4c7547f1e49116c..e3c64e04676b3e62088d0551278198a3d3e0d2a7 100644 --- a/readme.md +++ b/readme.md @@ -61,7 +61,6 @@ API documentation (OAS 3.1) is accessible at: [http://localhost:9966/petclinic/v | **Pets** | | | | **GET** | `/api/pets` | Retrieve all pets | | **GET** | `/api/pets/{petId}` | Get a pet by ID | -| **POST** | `/api/pets` | Add a new pet | | **PUT** | `/api/pets/{petId}` | Update pet details | | **DELETE** | `/api/pets/{petId}` | Delete a pet | | **Vets** | | | diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java index e5727fda61e9d204b412e366b49e7402a6834857..fc9ec87355c78f146962e610e08200da86b5e2a8 100644 --- a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java +++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java @@ -16,7 +16,6 @@ package org.springframework.samples.petclinic.rest.controller; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.samples.petclinic.mapper.PetMapper; @@ -28,7 +27,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.util.UriComponentsBuilder; import java.util.ArrayList; import java.util.List; @@ -97,13 +95,4 @@ public class PetRestController implements PetsApi { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - @PreAuthorize("hasRole(@roles.OWNER_ADMIN)") - @Override - public ResponseEntity<PetDto> addPet(PetDto petDto) { - HttpHeaders headers = new HttpHeaders(); - Pet pet = petMapper.toPet(petDto); - this.clinicService.savePet(pet); - headers.setLocation(UriComponentsBuilder.newInstance().path("/api/pets/{id}").buildAndExpand(pet.getId()).toUri()); - return new ResponseEntity<>(petMapper.toPetDto(pet), headers, HttpStatus.CREATED); - } } diff --git a/src/main/resources/openapi.yml b/src/main/resources/openapi.yml index d9916cbf90700bdd374eaae4fae855f9eb0b4ca6..918211b83d5a9b89e6967b01858f738713b21583 100755 --- a/src/main/resources/openapi.yml +++ b/src/main/resources/openapi.yml @@ -798,56 +798,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ProblemDetail' - post: - tags: - - pet - operationId: addPet - summary: Create a pet - description: Creates a pet . - requestBody: - description: The pet - content: - application/json: - schema: - $ref: '#/components/schemas/Pet' - required: true - responses: - 201: - description: Pet type created successfully. - headers: - ETag: - description: An ID for this version of the response. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/Pet' - 304: - description: Not modified. - headers: - ETag: - description: An ID for this version of the response. - schema: - type: string - 400: - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetail' - 404: - description: Pet not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetail' - 500: - description: Server error. - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetail' /pets/{petId}: get: tags: diff --git a/src/test/java/org/springframework/samples/petclinic/rest/controller/PetRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/controller/PetRestControllerTests.java index 12711e211d27cabe0656e4fdffd2006afd32b202..fede0e65e9a88d5679a1d94c6c8cb6f0f4b5b685 100644 --- a/src/test/java/org/springframework/samples/petclinic/rest/controller/PetRestControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/rest/controller/PetRestControllerTests.java @@ -23,7 +23,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.samples.petclinic.mapper.PetMapper; import org.springframework.samples.petclinic.model.Pet; @@ -220,31 +219,4 @@ class PetRestControllerTests { .andExpect(status().isNotFound()); } - @Test - @WithMockUser(roles = "OWNER_ADMIN") - void testAddPetSuccess() throws Exception { - PetDto newPet = pets.get(0); - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new JavaTimeModule()); - String newPetAsJSON = mapper.writeValueAsString(newPet); - given(this.clinicService.findPetById(3)).willReturn(petMapper.toPet(pets.get(0))); - this.mockMvc.perform(post("/api/pets") - .content(newPetAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE)) - .andExpect(status().isCreated()) - .andExpect(header().string(HttpHeaders.LOCATION, "/api/pets/3")); - } - - @Test - @WithMockUser(roles = "OWNER_ADMIN") - void testAddPetError() throws Exception { - PetDto newPet = pets.get(0); - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new JavaTimeModule()); - String newPetAsJSON = mapper.writeValueAsString(newPet); - given(this.clinicService.findPetById(999)).willReturn(null); - this.mockMvc.perform(post("/api/pets") - // set empty JSON to force 400 error - .content("{}").accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE)) - .andExpect(status().isBadRequest()); - } }