From 40c7a7adea50a3d970e94c90972b9a1d2e2cbd4b Mon Sep 17 00:00:00 2001 From: vanderleik Date: Mon, 13 May 2024 12:08:53 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20VIN-485=20-=20refatorando=20a=20documen?= =?UTF-8?q?ta=C3=A7=C3=A3o=20do=20BFF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bff/README.md | 184 +++++++----------- .../avaliacao/PointScaleController.java | 9 + .../cadastro/AddressController.java | 9 + .../cadastro/CountryController.java | 6 + .../cadastro/PersonController.java | 10 + .../controllers/cadastro/StateController.java | 8 +- .../controllers/cadastro/UserController.java | 11 ++ .../degustacao/TastingCardController.java | 9 + .../harmonizacao/PairingController.java | 6 + .../controllers/vinho/WineController.java | 9 + .../controllers/AuthenticationController.java | 5 + 11 files changed, 146 insertions(+), 120 deletions(-) diff --git a/bff/README.md b/bff/README.md index 1ade7189..0bc6e976 100644 --- a/bff/README.md +++ b/bff/README.md @@ -22,223 +22,169 @@ Você pode iniciar o aplicativo executando `mvn spring-boot:run`. O serviço est ## Endpoints -### wine-controller +### Usuários: Operações relacionadas a usuários GET -- `/api/v1/wines/{id}`: +- `/api/v1/users/{id}`: Retorna um usuário pelo seu id PUT -- `/api/v1/wines/{id}`: +- `/api/v1/users/{id}`: Atualiza um usuário DELETE -- `/api/v1/wines/{id}`: +- `/api/v1/users/{id}`: Deleta um usuário GET -- `/api/v1/wines`: +- `/api/v1/users`: Retorna todos os usuários POST -- `/api/v1/wines`: +- `/api/v1/users`: Cria um usuário -### visual-inspection-controller +POST +- `/api/v1/users/login`: Realiza o login de um usuário GET -- `/api/v1/visual-inspection/{id}`: - -PUT -- `/api/v1/visual-inspection/{id}`: +- `/api/v1/users/name/{name}`: Retorna um usuário pelo seu nome DELETE -- `/api/v1/visual-inspection/{id}`: - -GET -- `/api/v1/visual-inspection`: - -POST -- `/api/v1/visual-inspection`: +- `/api/v1/users/deleteAll`: Deleta uma lista de usuários -### user-controller +### Países: Operações relacionadas a países GET -- `/api/v1/users/{id}`: - -PUT -- `/api/v1/users/{id}`: - -DELETE -- `/api/v1/users/{id}`: +- `/api/v1/countries`: Retorna todos os países GET -- `/api/v1/users`: - -POST -- `/api/v1/users`: +- `/api/v1/countries/{id}`: Retorna um país pelo seu id GET -- `/api/v1/users/name/{name}`: +- `/api/v1/countries/name/{name}`: Retorna um país pelo seu nome -### tasting-controller +### Pessoas: Operações relacionadas a pessoas GET -- `/api/v1/tasting/{id}`: +- `/api/v1/persons/{id}`: Retorna uma pessoa pelo seu id PUT -- `/api/v1/tasting/{id}`: +- `/api/v1/persons/{id}`: Atualiza uma pessoa DELETE -- `/api/v1/tasting/{id}`: +- `/api/v1/persons/{id}`: Deleta uma pessoa GET -- `/api/v1/tasting`: +- `/api/v1/persons`: Retorna todas as pessoas POST -- `/api/v1/tasting`: - -### tasting-card-controller +- `/api/v1/persons`: Cria uma pessoa GET -- `/api/v1/tasting-card/{id}`: - -PUT -- `/api/v1/tasting-card/{id}`: +- `/api/v1/persons/name/{name}`: Retorna uma pessoa pelo seu nome DELETE -- `/api/v1/tasting-card/{id}`: - -GET -- `/api/v1/tasting-card`: +- `/api/v1/persons/deleteAll`: Deleta uma lista de pessoas -POST -- `/api/v1/tasting-card`: - -### point-scale-controller +### Endereços: Operações relacionadas a endereços GET -- `/api/v1/point-scales/{id}`: +- `/api/v1/address/{id}`: Retorna um endereço pelo seu id PUT -- `/api/v1/point-scales/{id}`: +- `/api/v1/address/{id}`: Atualiza um endereço DELETE -- `/api/v1/point-scales/{id}`: +- `/api/v1/address/{id}`: Deleta um endereço GET -- `/api/v1/point-scales`: +- `/api/v1/address`: Retorna todos os endereços + POST +- `/api/v1/address`: Cria um endereço -POST -- `/api/v1/point-scales`: +DELETE +- `/api/v1/address/deleteAll`: Deleta uma lista de endereços -### person-controller +### Estados: Operações relacionadas a estados GET -- `/api/v1/persons/{id}`: - -PUT -- `/api/v1/persons/{id}`: - -DELETE -- `/api/v1/persons/{id}`: +- `/api/v1/states`: Retorna todos os estados GET -- `/api/v1/persons`: +- `/api/v1/states/{id}`: Retorna um estado pelo seu id -POST -- `/api/v1/persons`: +GET +- `/api/v1/states/uf/{uf}`: Retorna um estado pela sua UF GET -- `/api/v1/persons/name/{name}`: +- `/api/v1/states/name/{name}`: Retorna um estado pelo seu nome -### olfactory-inspection-controller +### Point Scales: Operações relacionadas a avaliação de vinhos GET -- `/api/v1/olfactory-inspection/{id}`: +- `/api/v1/point-scales/{id}`: Retorna uma avaliação de vinho pelo id PUT -- `/api/v1/olfactory-inspection/{id}`: +- `/api/v1/point-scales/{id}`: Atualiza uma avaliação de vinho pelo id DELETE -- `/api/v1/olfactory-inspection/{id}`: +- `/api/v1/point-scales/{id}`: Deleta uma avaliação de vinho pelo id GET -- `/api/v1/olfactory-inspection`: +- `/api/v1/point-scales`: Retorna todas as avaliações de vinho POST -- `/api/v1/olfactory-inspection`: - -### gustatory-inspection-controller - -GET -- `/api/v1/gustatory-inspection/{id}`: - -PUT -- `/api/v1/gustatory-inspection/{id}`: +- `/api/v1/point-scales`: Cria uma avaliação de vinho DELETE -- `/api/v1/gustatory-inspection/{id}`: - -GET -- `/api/v1/gustatory-inspection`: - -POST -- `/api/v1/gustatory-inspection`: +- `/api/v1/point-scales/deleteAll`: Deleta uma lista de avaliação de vinho -### aromas-controller +### Vinhos: Operações relacionadas a vinhos GET -- `/api/v1/aromas/{id}`: +- `/api/v1/wines/{id}`: Retorna um vinho pelo id PUT -- `/api/v1/aromas/{id}`: +- `/api/v1/wines/{id}`: Atualiza um vinho pelo id DELETE -- `/api/v1/aromas/{id}`: +- `/api/v1/wines/{id}`: Deleta um vinho pelo id GET -- `/api/v1/aromas`: +- `/api/v1/wines`: Retorna todos os vinhos POST -- `/api/v1/aromas`: +- `/api/v1/wines`: Cria um vinho + +DELETE +- `/api/v1/wines/deleteAll`: Deleta uma lista de vinhos -### address-controller +### Tasting Card: Operações relacionadas a ficha de degustação do vinho GET -- `/api/v1/address/{id}`: +- `/api/v1/tasting-card/{id}`: Retorna uma ficha de degustação cadastrada pelo id PUT -- `/api/v1/address/{id}`: +- `/api/v1/tasting-card/{id}`: Atualiza uma ficha de degustação cadastrada pelo id DELETE -- `/api/v1/address/{id}`: +- `/api/v1/tasting-card/{id}`: Deleta uma ficha de degustação cadastrada pelo id GET -- `/api/v1/address`: +- `/api/v1/tasting-card`: Retorna uma lista com todas as fichas de degustação cadastradas POST -- `/api/v1/address`: - -### state-controller - -GET -- `/api/v1/states`: +- `/api/v1/tasting-card`: Cadastrar ficha de degustação -GET -- `/api/v1/states/{id}`: - -GET -- `/api/v1/states/uf/{uf}`: - -GET -- `/api/v1/states/name/{name}`: +DELETE +- `/api/v1/tasting-card/deleteAll`: Deleta uma lista de fichas de degustação -### country-controller +### Pairing: Operações relacionadas a harmonização de vinhos GET -- `/api/v1/countries`: +- `/api/v1/pairing/pairings`: Retorna a harmonização do vinho GET -- `/api/v1/countries/{id}`: +- `/api/v1/pairing/menu`: Retorna a harmonização do vinho com o menu GET -- `/api/v1/countries/name/{name}`: +- `/api/v1/pairing/information`: Retorna informações sobre o vinho ## Licença diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/avaliacao/PointScaleController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/avaliacao/PointScaleController.java index 3eb356ea..63f5f7b0 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/avaliacao/PointScaleController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/avaliacao/PointScaleController.java @@ -4,6 +4,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.avaliacao.PointScaleInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.avaliacao.PointScaleOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -16,36 +18,43 @@ @RequestMapping("/api/v1/point-scales") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Point Scales", description = "Operações relacionadas a avaliação de vinhos") public class PointScaleController { private final PointScaleService pointScaleService; + @Operation(summary = "Cria uma avaliação de vinho") @PostMapping public ResponseEntity createPointScale(@Valid @RequestBody PointScaleInputDTO pointScaleInputDTO) { return ResponseEntity.ok(pointScaleService.createPointScale(pointScaleInputDTO)); } + @Operation(summary = "Retorna todas as avaliações de vinho") @GetMapping public ResponseEntity> getAllPointScale() { return ResponseEntity.ok(pointScaleService.getAllPointScale()); } + @Operation(summary = "Retorna uma avaliação de vinho pelo id") @GetMapping("/{id}") public ResponseEntity getPointScaleById(@PathVariable("id") String id) { return ResponseEntity.ok(pointScaleService.getPointScaleById(id)); } + @Operation(summary = "Atualiza uma avaliação de vinho pelo id") @PutMapping("/{id}") public ResponseEntity updatePointScale(@PathVariable("id") String id, @Valid @RequestBody PointScaleInputDTO pointScaleInputDTO) { return ResponseEntity.ok(pointScaleService.updatePointScale(id, pointScaleInputDTO)); } + @Operation(summary = "Deleta uma avaliação de vinho pelo id") @DeleteMapping("/{id}") public ResponseEntity deletePointScale(@PathVariable("id") String id) { pointScaleService.deletePointScale(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Deleta uma lista de avaliação de vinho") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllPointScale(@RequestBody List ids) { ids.forEach(pointScaleService::deletePointScale); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/AddressController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/AddressController.java index 9788b3a2..787ab3fa 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/AddressController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/AddressController.java @@ -5,6 +5,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.cadastro.EditAddressInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.AddressOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -17,36 +19,43 @@ @RequestMapping("/api/v1/address") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Endereços", description = "Operações relacionadas a endereços") public class AddressController { private final AddressService addressService; + @Operation(summary = "Cria um endereço") @PostMapping public ResponseEntity createAddress(@Valid @RequestBody AddressInputDTO addressInputDTO) { return ResponseEntity.ok(addressService.createAddress(addressInputDTO)); } + @Operation(summary = "Retorna todos os endereços") @GetMapping public ResponseEntity> getAllAddress() { return ResponseEntity.ok(addressService.getAllAddress()); } + @Operation(summary = "Retorna um endereço pelo seu id") @GetMapping("/{id}") public ResponseEntity getAddressById(@PathVariable("id") String id) { return ResponseEntity.ok(addressService.getAddressById(id)); } + @Operation(summary = "Atualiza um endereço") @PutMapping("/{id}") public ResponseEntity updateAddress(@PathVariable("id") String id, @Valid @RequestBody EditAddressInputDTO editAddressInputDTO) { return ResponseEntity.ok(addressService.updateAddress(id, editAddressInputDTO)); } + @Operation(summary = "Deleta um endereço") @DeleteMapping("/{id}") public ResponseEntity deleteAddress(@PathVariable("id") String id) { addressService.deleteAddress(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Deleta uma lista de endereços") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllAddress(@RequestBody List ids) { ids.forEach(addressService::deleteAddress); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/CountryController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/CountryController.java index 87ff1439..4bdca627 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/CountryController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/CountryController.java @@ -3,6 +3,8 @@ import com.vinhonotas.bff.application.services.cadastro.CountryService; import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.CountryOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -14,20 +16,24 @@ @RequestMapping("/api/v1/countries") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Países", description = "Operações relacionadas a países") public class CountryController { private final CountryService countryService; + @Operation(summary = "Retorna todos os países") @GetMapping public ResponseEntity> getAllCountries() { return ResponseEntity.ok(countryService.getAllCountries()); } + @Operation(summary = "Retorna um país pelo seu id") @GetMapping("/{id}") public ResponseEntity getCountryById(@PathVariable("id") String id) { return ResponseEntity.ok(countryService.getCountryById(id)); } + @Operation(summary = "Retorna um país pelo seu nome") @GetMapping("/name/{name}") public ResponseEntity getCountryByName(@PathVariable("name") String name) { return ResponseEntity.ok(countryService.getCountryByName(name)); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/PersonController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/PersonController.java index a1d004b6..e368335f 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/PersonController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/PersonController.java @@ -5,6 +5,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.cadastro.PersonInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.PersonOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -17,41 +19,49 @@ @RequestMapping("/api/v1/persons") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Pessoas", description = "Operações relacionadas a pessoas") public class PersonController { private final PersonService personService; + @Operation(summary = "Cria uma pessoa") @PostMapping public ResponseEntity createPerson(@Valid @RequestBody PersonInputDTO personInputDTO) { return ResponseEntity.ok(personService.createPerson(personInputDTO)); } + @Operation(summary = "Retorna todas as pessoas") @GetMapping public ResponseEntity> getAllPerson() { return ResponseEntity.ok(personService.getAllPerson()); } + @Operation(summary = "Retorna uma pessoa pelo seu id") @GetMapping("/{id}") public ResponseEntity getPersonById(@PathVariable("id") String id) { return ResponseEntity.ok(personService.getPersonById(id)); } + @Operation(summary = "Retorna uma pessoa pelo seu nome") @GetMapping("/name/{name}") public ResponseEntity getPersonByName(@PathVariable("name") String name) { return ResponseEntity.ok(personService.getPersonByName(name)); } + @Operation(summary = "Atualiza uma pessoa") @PutMapping("/{id}") public ResponseEntity updatePerson(@PathVariable("id") String id, @Valid @RequestBody EditPersonInputDTO editPersonInputDTO) { return ResponseEntity.ok(personService.updatePerson(id, editPersonInputDTO)); } + @Operation(summary = "Deleta uma pessoa") @DeleteMapping("/{id}") public ResponseEntity deletePerson(@PathVariable("id") String id) { personService.deletePerson(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Deleta uma lista de pessoas") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllPerson(@RequestBody List ids) { ids.forEach(personService::deletePerson); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/StateController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/StateController.java index 510b5b01..a16ddaa0 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/StateController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/StateController.java @@ -3,6 +3,8 @@ import com.vinhonotas.bff.application.services.cadastro.StateService; import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.StateOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -14,26 +16,30 @@ @RequestMapping("/api/v1/states") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Estados", description = "Operações relacionadas a estados") public class StateController { private final StateService stateService; + @Operation(summary = "Retorna todos os estados") @GetMapping public ResponseEntity> getAllStates(){ return ResponseEntity.ok(stateService.getAllStates()); } + @Operation(summary = "Retorna um estado pelo seu id") @GetMapping("/{id}") public ResponseEntity getStateById(@PathVariable("id") String id){ return ResponseEntity.ok(stateService.getStateById(id)); } - + @Operation(summary = "Retorna um estado pelo seu nome") @GetMapping("/name/{name}") public ResponseEntity getStateByName(@PathVariable("name") String name) { return ResponseEntity.ok(stateService.getStateByName(name)); } + @Operation(summary = "Retorna um estado pela sua UF") @GetMapping("/uf/{uf}") public ResponseEntity getStateByUf(@PathVariable("uf") String uf) { return ResponseEntity.ok(stateService.getStateByUf(uf)); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/UserController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/UserController.java index 0901be2e..509b2bed 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/UserController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/cadastro/UserController.java @@ -7,6 +7,8 @@ import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.LoginResponseDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.cadastro.UserOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -19,46 +21,55 @@ @RequestMapping("/api/v1/users") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Usuários", description = "Operações relacionadas a usuários") public class UserController { private final UserService userService; + @Operation(summary = "Cria um usuário") @PostMapping public ResponseEntity createUser(@Valid @RequestBody UserInputDTO userInputDTO) { return ResponseEntity.ok(userService.createUser(userInputDTO)); } + @Operation(summary = "Retorna todos os usuários") @GetMapping public ResponseEntity> getAllUser() { return ResponseEntity.ok(userService.getAllUser()); } + @Operation(summary = "Retorna um usuário pelo seu id") @GetMapping("/{id}") public ResponseEntity getUserById(@PathVariable("id") String id) { return ResponseEntity.ok(userService.getUserById(id)); } + @Operation(summary = "Retorna um usuário pelo seu nome") @GetMapping("/name/{name}") public ResponseEntity getUserByName(@PathVariable("name") String name) { return ResponseEntity.ok(userService.getUserByName(name)); } + @Operation(summary = "Atualiza um usuário") @PutMapping("/{id}") public ResponseEntity updateUser(@PathVariable("id") String id, @Valid @RequestBody EditUserInputDTO editUserInputDTO) { return ResponseEntity.ok(userService.updateUser(id, editUserInputDTO)); } + @Operation(summary = "Deleta um usuário") @DeleteMapping("/{id}") public ResponseEntity deleteUser(@PathVariable("id") String id) { userService.deleteUser(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Realiza o login de um usuário") @PostMapping("/login") public ResponseEntity login(@Valid @RequestBody AuthenticationDTO data) { return ResponseEntity.ok(userService.login(data)); } + @Operation(summary = "Deleta uma lista de usuários") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllUser(@RequestBody List ids) { ids.forEach(userService::deleteUser); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/degustacao/TastingCardController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/degustacao/TastingCardController.java index f6a835c1..5ecd7d3a 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/degustacao/TastingCardController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/degustacao/TastingCardController.java @@ -4,6 +4,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.degustacao.TastingCardInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.degustacao.TastingCardOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -16,36 +18,43 @@ @RequestMapping("/api/v1/tasting-card") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Tasting Card", description = "Operações relacionadas a ficha de degustação do vinho") public class TastingCardController { private final TastingCardService tastingCardService; + @Operation(summary = "Cadastrar ficha de degustação") @PostMapping public ResponseEntity createTastingCard(@Valid @RequestBody TastingCardInputDTO tastingCardInputDTO) { return ResponseEntity.ok(tastingCardService.createTastingCard(tastingCardInputDTO)); } + @Operation(summary = "Retorna uma lista com todas as fichas de degustação cadastradas") @GetMapping public ResponseEntity> getAllTastingCards() { return ResponseEntity.ok(tastingCardService.getAllTastingCards()); } + @Operation(summary = "Retorna uma ficha de degustação cadastrada pelo id") @GetMapping("/{id}") public ResponseEntity getTastingCardById(@PathVariable("id") String id) { return ResponseEntity.ok(tastingCardService.getTastingCardById(id)); } + @Operation(summary = "Atualiza uma ficha de degustação cadastrada pelo id") @PutMapping("/{id}") public ResponseEntity updateTastingCard(@PathVariable ("id") String id, @Valid @RequestBody TastingCardInputDTO tastingCardInputDTO) { return ResponseEntity.ok(tastingCardService.updateTastingCard(id, tastingCardInputDTO)); } + @Operation(summary = "Deleta uma ficha de degustação cadastrada pelo id") @DeleteMapping("/{id}") public ResponseEntity deleteTastingCard(@PathVariable ("id") String id) { tastingCardService.deleteTastingCard(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Deleta uma lista de fichas de degustação") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllTastingCards(@RequestBody List ids) { ids.forEach(tastingCardService::deleteTastingCard); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/harmonizacao/PairingController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/harmonizacao/PairingController.java index 669974e3..b42aecf0 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/harmonizacao/PairingController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/harmonizacao/PairingController.java @@ -4,6 +4,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.harmonizacao.PairingInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.harmonizacao.PairingResponseDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -13,22 +15,26 @@ @RequestMapping("/api/v1/pairing") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Pairing", description = "Operações relacionadas a harmonização de vinhos") public class PairingController { private final PairingService pairingService; + @Operation(summary = "Retorna informações sobre o vinho") @GetMapping("/information") public ResponseEntity getWineInformation(@RequestParam(value = "wine") PairingInputDTO wine) { PairingResponseDTO wineInformation = pairingService.getWineInformation(wine); return ResponseEntity.ok(wineInformation); } + @Operation(summary = "Retorna a harmonização do vinho") @GetMapping("/pairings") public ResponseEntity getWinePairing(@RequestParam(value = "wine") PairingInputDTO wine) { PairingResponseDTO winePairing = pairingService.getWinePairing(wine); return ResponseEntity.ok(winePairing); } + @Operation(summary = "Retorna a harmonização do vinho com o menu") @GetMapping("/menu") public ResponseEntity getMenuPairing(@RequestParam(value = "wine") PairingInputDTO wine) { PairingResponseDTO menuPairing = pairingService.getMenuPairing(wine); diff --git a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/vinho/WineController.java b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/vinho/WineController.java index ead85c7b..a9b51053 100644 --- a/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/vinho/WineController.java +++ b/bff/src/main/java/com/vinhonotas/bff/interfaces/controllers/vinho/WineController.java @@ -4,6 +4,8 @@ import com.vinhonotas.bff.interfaces.dtos.inputs.vinho.WineInputDTO; import com.vinhonotas.bff.interfaces.dtos.outputs.vinho.WineOutputDTO; import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -16,36 +18,43 @@ @RequestMapping("/api/v1/wines") @RequiredArgsConstructor @CrossOrigin(origins = "http://localhost:5173", maxAge = 3600) +@Tag(name = "Vinhos", description = "Operações relacionadas a vinhos") public class WineController { private final WineService wineService; + @Operation(summary = "Cria um vinho") @PostMapping public ResponseEntity createWine(@Valid @RequestBody WineInputDTO wineInputDTO) { return ResponseEntity.ok(wineService.createWine(wineInputDTO)); } + @Operation(summary = "Retorna todos os vinhos") @GetMapping public ResponseEntity> getAllWines() { return ResponseEntity.ok(wineService.getAllWines()); } + @Operation(summary = "Retorna um vinho pelo id") @GetMapping("/{id}") public ResponseEntity getWineById(@PathVariable("id") String id) { return ResponseEntity.ok(wineService.getWineById(id)); } + @Operation(summary = "Atualiza um vinho pelo id") @PutMapping("/{id}") public ResponseEntity updateWine(@PathVariable("id") String id, @Valid @RequestBody WineInputDTO wineInputDTO) { return ResponseEntity.ok(wineService.updateWine(id, wineInputDTO)); } + @Operation(summary = "Deleta um vinho pelo id") @DeleteMapping("/{id}") public ResponseEntity deleteWine(@PathVariable("id") String id) { wineService.deleteWine(id); return ResponseEntity.noContent().build(); } + @Operation(summary = "Deleta uma lista de vinhos") @DeleteMapping("/deleteAll") public ResponseEntity deleteAllWine(@RequestBody List ids) { ids.forEach(wineService::deleteWine); diff --git a/cadastro/src/main/java/com/vinhonotas/cadastro/interfaces/controllers/AuthenticationController.java b/cadastro/src/main/java/com/vinhonotas/cadastro/interfaces/controllers/AuthenticationController.java index 8bdb8d45..84f2a3b0 100644 --- a/cadastro/src/main/java/com/vinhonotas/cadastro/interfaces/controllers/AuthenticationController.java +++ b/cadastro/src/main/java/com/vinhonotas/cadastro/interfaces/controllers/AuthenticationController.java @@ -12,6 +12,8 @@ import com.vinhonotas.cadastro.interfaces.dtos.outputs.LoginResponseDTO; import com.vinhonotas.cadastro.utils.EnumConverter; import com.vinhonotas.cadastro.utils.MessagesConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -33,6 +35,7 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api/v1/auth") +@Tag(name = "Autenticação", description = "Operações relacionadas a autenticação") public class AuthenticationController{ private final AuthenticationManager authenticationManager; @@ -40,6 +43,7 @@ public class AuthenticationController{ private final PersonService personService; private final TokenService tokenService; + @Operation(summary = "Realiza o login de um usuário") @PostMapping("/login") public ResponseEntity login(@RequestBody @Valid AuthenticationDTO data){ log.info("login :: Login request received {}: ", data); @@ -52,6 +56,7 @@ public ResponseEntity login(@RequestBody @Valid Authentication return ResponseEntity.ok(login); } + @Operation(summary = "Realiza o registro de um usuário") @PostMapping("/register") public ResponseEntity register(@RequestBody @Valid UserInputDTO data){ log.info("register :: Register request received {}: ", data);