Class EventoController
Fornisce un set completo di API per la manipolazione degli eventi aziendali, la gestione dei partecipanti e l'esposizione sincronizzata dei task assegnati. Implementa logiche di validazione stringenti sui periodi temporali e garantisce l'integrità dei dati tra Utenti, Aziende ed Eventi.
- Since:
- 1.2.0
- Version:
- 2.1.5
- Author:
- Modulink Team
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordOggetto di richiesta per la creazione di un nuovo evento.static final recordOggetto di richiesta per la cancellazione di un evento.static final recordData Transfer Object per la rappresentazione sintetica di un evento nel calendario.static final recordOggetto di richiesta per l'aggiornamento di un evento. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AssegnazioneServiceprivate final CustomUserDetailsServiceprivate final EventoRepositoryprivate final EventoServiceprivate final PartecipazioneServiceprivate final UserRepository -
Constructor Summary
ConstructorsConstructorDescriptionEventoController(EventoService eventoService, EventoRepository eventoRepository, PartecipazioneService partecipazioneService, CustomUserDetailsService customUserDetailsService, UserRepository userRepository, ModuloService moduloService, AssegnazioneService assegnazioneService) Inizializza il controller iniettando i servizi necessari per l'interazione con eventi, task e utenze. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<?> createEvento(EventoController.CreateEventoRequest request, Principal principal) Gestisce la creazione di un nuovo evento aziendale.org.springframework.http.ResponseEntity<?> deleteEvento(EventoController.DeleteEventoRequest request, Principal principal) Rimuove un evento dal database.voiddisinstallaModulo(AziendaEntity azienda) Metodo astratto che deve essere implementato per gestire la logica di pulizia dei dati.org.springframework.http.ResponseEntity<?> Recupera l'elenco di tutti gli eventi a cui partecipa l'utente corrente.org.springframework.http.ResponseEntity<?> getEventiAndTask(Principal principal) Recupera i task assegnati all'utente corrente, mappandoli come eventi di calendario.org.springframework.http.ResponseEntity<?> getEventiAzienda(Principal principal) Recupera tutti gli eventi associati all'azienda del richiedente.org.springframework.http.ResponseEntity<?> Recupera la lista degli utenti aziendali o dei partecipanti a un evento.static List<EventoController.EventoDTO> parse(List<EventoEntity> eventi) Utility per la conversione massiva di entità Evento in DTO.static List<EventoController.EventoDTO> parseTask(List<TaskEntity> tasks) Utility per la conversione di Task in oggetti compatibili con il calendario.org.springframework.http.ResponseEntity<?> updateEvento(EventoController.UpdateEventoRequest request, Principal principal) Aggiorna un evento esistente.Methods inherited from class ModuloController
getId, isAccessibleModulo, setId
-
Field Details
-
eventoService
-
eventoRepository
-
partecipazioneService
-
customUserDetailsService
-
userRepository
-
assegnazioneService
-
-
Constructor Details
-
EventoController
public EventoController(EventoService eventoService, EventoRepository eventoRepository, PartecipazioneService partecipazioneService, CustomUserDetailsService customUserDetailsService, UserRepository userRepository, ModuloService moduloService, AssegnazioneService assegnazioneService) Inizializza il controller iniettando i servizi necessari per l'interazione con eventi, task e utenze.- Parameters:
eventoService- Servizio eventi.eventoRepository- Repository eventi.partecipazioneService- Servizio per la gestione degli inviti.customUserDetailsService- Servizio utenti.userRepository- Repository utenti.moduloService- Servizio moduli.assegnazioneService- Servizio assegnazioni task.- Since:
- 1.2.0
-
-
Method Details
-
getEventi
@GetMapping("/get") @ResponseBody public org.springframework.http.ResponseEntity<?> getEventi(Principal principal) Recupera l'elenco di tutti gli eventi a cui partecipa l'utente corrente.- Parameters:
principal- Identità dell'utente autenticato.- Returns:
ResponseEntitycontenente una lista diEventoController.EventoDTOo stato FORBIDDEN.- Since:
- 1.2.0
-
getEventiAndTask
@GetMapping("/getet") public org.springframework.http.ResponseEntity<?> getEventiAndTask(Principal principal) Recupera i task assegnati all'utente corrente, mappandoli come eventi di calendario.Questo endpoint permette di visualizzare i task operativi direttamente nel calendario, impostando come orario l'intera giornata della scadenza.
- Parameters:
principal- Identità dell'utente.- Returns:
ResponseEntitycon la lista di task trasformati in DTO.- Since:
- 1.3.0
-
createEvento
@PostMapping("/create") @ResponseBody public org.springframework.http.ResponseEntity<?> createEvento(@RequestBody EventoController.CreateEventoRequest request, Principal principal) Gestisce la creazione di un nuovo evento aziendale.Implementa validazioni sulla lunghezza dei campi, sull'obbligatorietà della data di inizio e impedisce la creazione di eventi in date passate. Associa automaticamente il creatore come partecipante e processa la lista degli invitati.
- Parameters:
request- DTO contenente i dati dell'evento e i partecipanti.principal- Identità dell'utente creatore.- Returns:
- JSON con lo stato dell'operazione e l'ID dell'evento creato.
- Since:
- 1.2.0
-
updateEvento
@PostMapping("/update") @ResponseBody public org.springframework.http.ResponseEntity<?> updateEvento(@RequestBody EventoController.UpdateEventoRequest request, Principal principal) Aggiorna un evento esistente.Oltre ai dati base, gestisce la sincronizzazione dei partecipanti aggiungendo i nuovi e rimuovendo quelli deselezionati. Garantisce che il creatore non possa essere rimosso.
- Parameters:
request- DTO con i dati aggiornati dell'evento.principal- Identità dell'utente loggato.- Returns:
- JSON di conferma aggiornamento.
- Since:
- 1.2.0
-
deleteEvento
@PostMapping("/delete") @ResponseBody public org.springframework.http.ResponseEntity<?> deleteEvento(@RequestBody EventoController.DeleteEventoRequest request, Principal principal) Rimuove un evento dal database.- Parameters:
request- DTO contenente l'ID dell'evento da eliminare.principal- Identità dell'utente loggato.- Returns:
- JSON di conferma cancellazione.
- Since:
- 1.2.0
-
getUsers
@GetMapping("/users") public org.springframework.http.ResponseEntity<?> getUsers(@RequestParam(required=false) Integer id, Principal principal) Recupera la lista degli utenti aziendali o dei partecipanti a un evento.Se il parametro 'id' è nullo, restituisce tutti i colleghi dell'azienda per popolare componenti di autocomplete. Se valorizzato, restituisce i soli partecipanti a quell'evento.
- Parameters:
id- ID opzionale di un evento specifico.principal- Identità utente.- Returns:
- Lista di
UserRestApi.UserDTO. - Since:
- 1.4.0
-
getEventiAzienda
@GetMapping("/all") public org.springframework.http.ResponseEntity<?> getEventiAzienda(Principal principal) Recupera tutti gli eventi associati all'azienda del richiedente.- Parameters:
principal- Identità utente.- Returns:
- Lista di tutti gli eventi aziendali in formato DTO.
- Since:
- 1.5.0
-
parse
Utility per la conversione massiva di entità Evento in DTO.- Parameters:
eventi- Lista di entità.- Returns:
- Lista di DTO.
-
parseTask
Utility per la conversione di Task in oggetti compatibili con il calendario. Filtra i task già completati.- Parameters:
tasks- Lista di entità Task.- Returns:
- Lista di DTO eventi.
-
disinstallaModulo
Description copied from class:ModuloControllerMetodo astratto che deve essere implementato per gestire la logica di pulizia dei dati.Viene invocato dal sistema durante la disattivazione o disinstallazione del modulo per una specifica azienda. Deve contenere la logica per rimuovere o archiviare in modo sicuro tutte le entità create dal modulo nel contesto dell'azienda indicata.
- Specified by:
disinstallaModuloin classModuloController- Parameters:
azienda- L'entitàAziendaEntityper cui il modulo viene rimosso.
-