Class PacchettoController
java.lang.Object
it.unicam.cs.ids2425.FilieraAgricola.controller.PacchettoController
Controller REST per la gestione dei Pacchetti (bundle di prodotti).
Espone endpoint per:
- Creazione e gestione (modifica/eliminazione) dei pacchetti da parte dei Distributori.
- Consultazione del catalogo pacchetti (pubblico/autenticato).
- Flusso di approvazione dei pacchetti riservato ai Curatori.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaggiornaPacchetto(Long id, PacchettoRequest request) Aggiorna un pacchetto esistente.voidapprovaPacchetto(Long id) Approva un pacchetto, rendendolo pubblico.org.springframework.http.ResponseEntity<PacchettoResponse> creaPacchetto(PacchettoRequest request) Crea un nuovo pacchetto.org.springframework.http.ResponseEntity<String> eliminaPacchetto(Long id) Elimina un pacchetto.org.springframework.http.ResponseEntity<List<PacchettoResponse>> Restituisce la lista di tutti i pacchetti approvati.Recupera i pacchetti creati da uno specifico distributore.Restituisce la lista dei pacchetti in attesa di approvazione.
-
Constructor Details
-
PacchettoController
public PacchettoController()
-
-
Method Details
-
creaPacchetto
@PreAuthorize("hasRole(\'DISTRIBUTORE\')") @PostMapping public org.springframework.http.ResponseEntity<PacchettoResponse> creaPacchetto(@RequestBody PacchettoRequest request) Crea un nuovo pacchetto.Accessibile solo dagli utenti con ruolo
DISTRIBUTORE. Il pacchetto nasce in stato "da approvare".- Parameters:
request- Dati del pacchetto da creare.- Returns:
- Il pacchetto creato.
-
getAllPacchetti
@PreAuthorize("isAuthenticated()") @GetMapping public org.springframework.http.ResponseEntity<List<PacchettoResponse>> getAllPacchetti()Restituisce la lista di tutti i pacchetti approvati.Accessibile a qualsiasi utente autenticato.
- Returns:
- Lista di pacchetti visibili.
-
getByDistributore
@PreAuthorize("hasRole(\'GESTORE\') or @customSecurityService.hasUserId(authentication, #id)") @GetMapping("/distributore/{id}") public List<PacchettoResponse> getByDistributore(@PathVariable Long id) Recupera i pacchetti creati da uno specifico distributore.Permesso a:
- Gestori (admin).
- L'utente stesso (se l'ID corrisponde a quello nei token).
- Parameters:
id- ID del distributore.- Returns:
- Lista dei suoi pacchetti.
-
pacchettiDaApprovare
@PreAuthorize("hasRole(\'CURATORE\')") @GetMapping("/da-approvare") public List<PacchettoResponse> pacchettiDaApprovare()Restituisce la lista dei pacchetti in attesa di approvazione.Accessibile solo ai Curatori.
- Returns:
- Pacchetti in stato
IN_REVISIONE.
-
approvaPacchetto
@PreAuthorize("hasRole(\'CURATORE\')") @PostMapping("/{id}/approva") public void approvaPacchetto(@PathVariable Long id) Approva un pacchetto, rendendolo pubblico.Accessibile solo ai Curatori.
- Parameters:
id- ID del pacchetto da approvare.
-
aggiornaPacchetto
@PreAuthorize("hasRole(\'DISTRIBUTORE\')") @PutMapping("/{id}") public PacchettoResponse aggiornaPacchetto(@PathVariable Long id, @RequestBody PacchettoRequest request) Aggiorna un pacchetto esistente.Accessibile solo ai Distributori (verrà controllata la proprietà nel service). Modificare un pacchetto ne richiede una nuova approvazione.
- Parameters:
id- ID del pacchetto.request- Nuovi dati.- Returns:
- Il pacchetto aggiornato.
-
eliminaPacchetto
@PreAuthorize("hasRole(\'DISTRIBUTORE\')") @DeleteMapping("/{id}") public org.springframework.http.ResponseEntity<String> eliminaPacchetto(@PathVariable Long id) Elimina un pacchetto.Accessibile solo ai Distributori (proprietari).
- Parameters:
id- ID del pacchetto da eliminare.- Returns:
- Conferma eliminazione.
-