Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: VIN-485 - refatorando a documentação do BFF #422

Merged
merged 1 commit into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 65 additions & 119 deletions bff/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<PointScaleOutputDTO> createPointScale(@Valid @RequestBody PointScaleInputDTO pointScaleInputDTO) {
return ResponseEntity.ok(pointScaleService.createPointScale(pointScaleInputDTO));
}

@Operation(summary = "Retorna todas as avaliações de vinho")
@GetMapping
public ResponseEntity<List<PointScaleOutputDTO>> getAllPointScale() {
return ResponseEntity.ok(pointScaleService.getAllPointScale());
}

@Operation(summary = "Retorna uma avaliação de vinho pelo id")
@GetMapping("/{id}")
public ResponseEntity<PointScaleOutputDTO> 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<PointScaleOutputDTO> 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<Void> 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<Void> deleteAllPointScale(@RequestBody List<String> ids) {
ids.forEach(pointScaleService::deletePointScale);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<AddressOutputDTO> createAddress(@Valid @RequestBody AddressInputDTO addressInputDTO) {
return ResponseEntity.ok(addressService.createAddress(addressInputDTO));
}

@Operation(summary = "Retorna todos os endereços")
@GetMapping
public ResponseEntity<List<AddressOutputDTO>> getAllAddress() {
return ResponseEntity.ok(addressService.getAllAddress());
}

@Operation(summary = "Retorna um endereço pelo seu id")
@GetMapping("/{id}")
public ResponseEntity<AddressOutputDTO> getAddressById(@PathVariable("id") String id) {
return ResponseEntity.ok(addressService.getAddressById(id));
}

@Operation(summary = "Atualiza um endereço")
@PutMapping("/{id}")
public ResponseEntity<AddressOutputDTO> 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<Void> deleteAddress(@PathVariable("id") String id) {
addressService.deleteAddress(id);
return ResponseEntity.noContent().build();
}

@Operation(summary = "Deleta uma lista de endereços")
@DeleteMapping("/deleteAll")
public ResponseEntity<Void> deleteAllAddress(@RequestBody List<String> ids) {
ids.forEach(addressService::deleteAddress);
Expand Down
Loading
Loading