Untitled
unknown
plain_text
3 months ago
1.3 kB
6
Indexable
@RestController
@RequestMapping("/api/v1/destinations")
public class DestinationController {
private final DestinationService service;
public DestinationController(DestinationService service) {
this.service = service;
}
@GetMapping
@PreAuthorize("hasAnyRole('ADMIN', 'USER')")
public ResponseEntity<List<DestinationResponseDto>> list() {
return ResponseEntity.ok(service.findAll());
}
@PostMapping
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<DestinationResponseDto> create(@Valid @RequestBody DestinationRequestDto request) {
var created = service.create(request);
var location = URI.create("/api/v1/destinations" + created.id());
return ResponseEntity.created(location).body(created);
}
@PutMapping("/{id}")
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<DestinationResponseDto> update(
@PathVariable Long id,
@Valid @RequestBody UpdateDestinationRequestDto request) {
return ResponseEntity.ok(service.update(id, request));
}
@DeleteMapping("/{id}")
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<Void> delete(@PathVariable Long id) {
service.delete(id);
return ResponseEntity.noContent().build();
}
}
Editor is loading...
Leave a Comment