Class GestoreService
java.lang.Object
it.unicam.cs.ids2425.FilieraAgricola.service.GestoreService
Service che gestisce le operazioni riservate al Gestore della piattaforma.
Si occupa principalmente dell'accreditamento degli utenti (Produttori,
Trasformatori, Distributori)
e dell'abilitazione dei ruoli base (Curatori, Animatori, ecc.).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaccreditaDistributore(Long userId, AccreditaDistributoreRequest request) Esegue l'accredito completo di un DISTRIBUTORE.voidaccreditaProduttore(Long userId, AccreditaProduttoreRequest request) Esegue l'accredito completo di un PRODUTTORE.voidaccreditaRuoloBase(Long userId, ERole ruoloNome) Abilita un utente che possiede un ruolo "base" (es.voidaccreditaTrasformatore(Long userId, AccreditaTrasformatoreRequest request) Esegue l'accredito completo di un TRASFORMATORE.
-
Constructor Details
-
GestoreService
public GestoreService()
-
-
Method Details
-
accreditaRuoloBase
Abilita un utente che possiede un ruolo "base" (es. CURATORE, ANIMATORE, GESTORE). Questo metodo verifica che l'utente abbia il ruolo richiesto e lo imposta come abilitato.- Parameters:
userId- L'identificativo univoco dell'utente da accreditare.ruoloNome- Il ruolo che si intende abilitare (non deve essere un ruolo di filiera come PRODUTTORE, ecc.).- Throws:
IllegalArgumentException- se il ruolo specificato richiede un flusso di accredito specifico.RuntimeException- se l'utente o il ruolo non vengono trovati.IllegalStateException- se l'utente non possiede il ruolo specificato.
-
accreditaProduttore
Esegue l'accredito completo di un PRODUTTORE. Questa operazione comprende:- Recupero dell'utente e del suo profilo base.
- Creazione e approvazione automatica del FilieraPoint associato (di tipo AZIENDA_AGRICOLA).
- Creazione del profilo specifico (ActorProfile_Produttore) con i dati aziendali forniti.
- Abilitazione dell'utente nel sistema.
- Parameters:
userId- L'identificativo dell'utente.request- Oggetto contenente i dati per l'accreditamento (dati azienda, punto filiera, ecc.).- Throws:
RuntimeException- se l'utente o il profilo base non vengono trovati.
-
accreditaTrasformatore
@Transactional public void accreditaTrasformatore(Long userId, AccreditaTrasformatoreRequest request) Esegue l'accredito completo di un TRASFORMATORE. Simile all'accredito produttore, ma crea un FilieraPoint di tipo LABORATORIO_TRASFORMAZIONE e un profilo ActorProfile_Trasformatore.- Parameters:
userId- L'identificativo dell'utente.request- Dati per l'accreditamento del trasformatore.- Throws:
RuntimeException- se l'utente o il profilo vengono meno.
-
accreditaDistributore
Esegue l'accredito completo di un DISTRIBUTORE. Crea un FilieraPoint di tipo PUNTO_VENDITA e un profilo ActorProfile_Distributore.- Parameters:
userId- L'identificativo dell'utente.request- Dati per l'accreditamento del distributore (inclusa logistica).- Throws:
RuntimeException- se l'utente o il profilo mancano.
-