Class AsignacionTurnoController
Permite la planificación de horarios, la consulta de asignaciones propias y generales, así como la modificación y eliminación de estas por parte de usuarios autorizados.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<RespuestaAsignacionTurnoDTO> actualizarAsignacion(Long id, @Valid PeticionAsignacionTurnoDTO peticion) Modifica una asignación de turno previamente registrada.org.springframework.http.ResponseEntity<RespuestaAsignacionTurnoDTO> crearAsignacion(@Valid PeticionAsignacionTurnoDTO peticion) Registra una nueva asignación de turno para un empleado específico.org.springframework.http.ResponseEntity<Void> Elimina de forma permanente una asignación de turno del sistema.org.springframework.http.ResponseEntity<List<RespuestaAsignacionTurnoDTO>> Obtiene el listado de asignaciones de turno según los permisos del usuario.org.springframework.http.ResponseEntity<List<RespuestaAsignacionTurnoDTO>> Recupera el listado exclusivo de asignaciones de turno para el empleado autenticado.org.springframework.http.ResponseEntity<List<ModalidadTurno>> Proporciona el listado de modalidades de turno disponibles (Presencial, Teletrabajo, etc.).
-
Field Details
-
asignacionService
-
-
Constructor Details
-
AsignacionTurnoController
public AsignacionTurnoController()
-
-
Method Details
-
crearAsignacion
@PostMapping @PreAuthorize("hasAnyRole(\'EMPRESA\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<RespuestaAsignacionTurnoDTO> crearAsignacion(@Valid @RequestBody @Valid PeticionAsignacionTurnoDTO peticion) Registra una nueva asignación de turno para un empleado específico.Este endpoint es utilizado por perfiles con capacidad de planificación (Empresa o Supervisores).
URL de acceso:
POST http://localhost:8080/api/asignaciones- Parameters:
peticion- DTO con los detalles de la asignación (empleado, turno, fecha, modalidad).- Returns:
- ResponseEntity con el
RespuestaAsignacionTurnoDTOcreado y estado 201 (Created).
-
listarAsignaciones
@GetMapping @PreAuthorize("hasAnyRole(\'EMPRESA\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<List<RespuestaAsignacionTurnoDTO>> listarAsignaciones()Obtiene el listado de asignaciones de turno según los permisos del usuario.Las organizaciones con rol 'EMPRESA' visualizan todas las asignaciones, mientras que los supervisores acceden a las de su ámbito de responsabilidad.
URL de acceso:
GET http://localhost:8080/api/asignaciones- Returns:
- ResponseEntity con la lista de
RespuestaAsignacionTurnoDTOpermitidas.
-
obtenerMisAsignaciones
@GetMapping("/me") @PreAuthorize("hasRole(\'EMPLEADO\')") public org.springframework.http.ResponseEntity<List<RespuestaAsignacionTurnoDTO>> obtenerMisAsignaciones()Recupera el listado exclusivo de asignaciones de turno para el empleado autenticado.Permite al trabajador conocer su planificación horaria personal.
URL de acceso:
GET http://localhost:8080/api/asignaciones/me- Returns:
- ResponseEntity con la lista de
RespuestaAsignacionTurnoDTOdel usuario logueado.
-
actualizarAsignacion
@PutMapping("/{id}") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<RespuestaAsignacionTurnoDTO> actualizarAsignacion(@PathVariable("id") Long id, @Valid @RequestBody @Valid PeticionAsignacionTurnoDTO peticion) Modifica una asignación de turno previamente registrada.Requiere la especificación de un motivo para el cambio con fines de auditoría.
URL de acceso:
PUT http://localhost:8080/api/asignaciones/{id}- Parameters:
id- Identificador único de la asignación a modificar.peticion- DTO con los nuevos datos de la asignación y el motivo del cambio.- Returns:
- ResponseEntity con el
RespuestaAsignacionTurnoDTOactualizado.
-
eliminarAsignacion
@DeleteMapping("/{id}") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<Void> eliminarAsignacion(@PathVariable("id") Long id) Elimina de forma permanente una asignación de turno del sistema.Esta operación es destructiva y debe usarse para correcciones de planificación.
URL de acceso:
DELETE http://localhost:8080/api/asignaciones/{id}- Parameters:
id- Identificador único de la asignación a eliminar.- Returns:
- ResponseEntity con cuerpo vacío y estado 204 (No Content).
-
obtenerModalidades
@GetMapping("/modalidades") @PreAuthorize("hasAnyRole(\'EMPRESA\', \'EMPLEADO\')") public org.springframework.http.ResponseEntity<List<ModalidadTurno>> obtenerModalidades()Proporciona el listado de modalidades de turno disponibles (Presencial, Teletrabajo, etc.).Sirve como endpoint de diccionario para la interfaz de usuario.
URL de acceso:
GET http://localhost:8080/api/asignaciones/modalidades- Returns:
- ResponseEntity con una lista de los valores del enum
ModalidadTurno.
-