Class OrdineController
java.lang.Object
it.unicam.cs.ids2425.FilieraAgricola.controller.OrdineController
Controller REST per la gestione delle operazioni relative agli ordini.
Espone endpoint per:
- Creare un ordine a partire da un carrello (Checkout).
- Visualizzare lo storico ordini di un utente.
- Aggiornare lo stato di un ordine (operazione gestionale).
Utilizza annotazioni @PreAuthorize per garantire l'accesso solo agli
utenti autorizzati.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<String> aggiornaStatoOrdine(Long id, String stato) Aggiorna lo stato di avanzamento di un ordine (es. da PAGATO a SPEDITO).org.springframework.http.ResponseEntity<OrdineResponse> creaOrdine(Long utenteId, CarrelloCheckoutDTO request) Endpoint per il processo di Checkout.org.springframework.http.ResponseEntity<List<OrdineResponse>> Recupera la lista degli ordini effettuati da uno specifico utente.
-
Constructor Details
-
OrdineController
public OrdineController()
-
-
Method Details
-
creaOrdine
@PostMapping("/checkout/{utenteId}") @PreAuthorize("hasRole(\'ACQUIRENTE\') and #utenteId == authentication.principal.id") public org.springframework.http.ResponseEntity<OrdineResponse> creaOrdine(@PathVariable Long utenteId, @RequestBody CarrelloCheckoutDTO request) Endpoint per il processo di Checkout.Riceve il contenuto del carrello e avvia la creazione dell'ordine. L'accesso รจ consentito solo all'acquirente proprietario del carrello (verifica su
utenteId).- Parameters:
utenteId- ID dell'utente che effettua l'acquisto.request- DTO contenente i dettagli degli articoli/pacchetti nel carrello.- Returns:
- La risposta con i dettagli dell'ordine creato.
-
getOrdiniByUtente
@GetMapping("/utente/{id}") @PreAuthorize("hasRole(\'ACQUIRENTE\') and #id == authentication.principal.id") public org.springframework.http.ResponseEntity<List<OrdineResponse>> getOrdiniByUtente(@PathVariable Long id) Recupera la lista degli ordini effettuati da uno specifico utente.Accessibile solo dall'utente stesso.
- Parameters:
id- ID dell'acquirente.- Returns:
- Lista di DTO
OrdineResponse.
-
aggiornaStatoOrdine
@PostMapping("/{id}/stato") @PreAuthorize("hasRole(\'GESTORE\') or hasAnyRole(\'PRODUTTORE\', \'TRASFORMATORE\', \'DISTRIBUTORE\')") public org.springframework.http.ResponseEntity<String> aggiornaStatoOrdine(@PathVariable Long id, @RequestParam String stato) Aggiorna lo stato di avanzamento di un ordine (es. da PAGATO a SPEDITO).Operazione riservata ai ruoli gestionali o ai venditori coinvolti nella filiera (Gestore, Produttore, Trasformatore, Distributore).
- Parameters:
id- ID dell'ordine da aggiornare.stato- Nuovo stato da assegnare (stringa corrispondente all'enum).- Returns:
- Messaggio di conferma.
-