Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Propiedades que cambian de dueño o de estado

5 tareas · 40 min · Principiante

Algunas propiedades no son solo sensibles: cambiarlas es una operación del negocio con sus propias reglas. El dueño de un objeto y su estado son los dos ejemplos más comunes. El programa de puntos de Pulsoandino repartió más de lo que marcaron los torniquetes y recepción no reconoce un traspaso. Te entregan el flujo de una reserva, el controlador de edición, sus reglas y una semana de auditoría.

0 de 5 · 0%

Objetivo de la sala

Algunas propiedades no son solo sensibles: cambiarlas es una operación del negocio con sus propias reglas. El dueño de un objeto y su estado son los dos ejemplos más comunes. El programa de puntos de Pulsoandino repartió más de lo que marcaron los torniquetes y recepción no reconoce un traspaso. Te entregan el flujo de una reserva, el controlador de edición, sus reglas y una semana de auditoría.

El estado de una reserva no es un dato que se escribe: es el resultado de algo que pasó. Pasa a confirmada porque la pasarela confirmó un pago; pasa a asistida porque un torniquete leyó un carné. Cada transición tiene su disparador, su comprobación y sus efectos (devolver una clase, sumar puntos). Lo mismo vale para el dueño: traspasar una reserva exige verificar a las dos personas.

Cuando esas propiedades entran en una edición genérica, la transición se salta su regla. Por eso se sacan de la edición y cada cambio tiene su propia operación, que comprueba que el estado de partida admite el cambio y que quien lo pide tiene derecho a hacerlo. Es la autorización a nivel de propiedad: el mismo campo puede ser legítimo para recepción y prohibido para el socio.

Responde para continuar

¿Por qué el estado de una reserva no debería ser un campo de la edición genérica?

Ver pista de ayuda

Relee el flujo: cada flecha tiene un responsable.

Abre el laboratorio, entra en la carpeta pulsoandino-reservas y lee ReservaController.php. El controlador busca la reserva entre las del propio socio, así que una ajena da 404: la comprobación del objeto está bien. El problema está en ActualizarReservaRequest.php, que admite como editables el dueño y el estado, y en que validated() devuelve justo esos campos. Ahora compara flujo-reservas.txt con auditoria-reservas.txt: cada transición tiene un origen esperado.

Responde para continuar

¿Qué reserva quedó confirmada sin pago ni clase descontada del paquete? Escribe su código.

Ver pista de ayuda

Busca una transición de pendiente a confirmada cuyo origen no es ni la pasarela ni el paquete.

El comentario de la regla dice que el dueño es editable «porque lo necesita recepción», pero recepción tiene su propia ruta. Busca un cambio de dueño que no venga de esa ruta.

Responde para continuar

¿A qué socio pasó una reserva sin que interviniera recepción? Escribe el código del socio que quedó como dueño.

Ver pista de ayuda

Compara el origen de los dos cambios de socio_id del registro.

Según el flujo, solo el torniquete marca una asistencia, y cada asistencia suma 10 puntos. Cruza puntos.txt con la auditoría y mide cuántos puntos se otorgaron por asistencias que no marcó un torniquete.

Responde para continuar

¿Cuántos puntos del programa se otorgaron por asistencias marcadas desde la edición del socio?

Ver pista de ayuda

Para cada reserva con puntos, mira quién la pasó a asistida.

El arreglo tiene que conservar lo que funciona (la búsqueda de la reserva entre las del socio) y quitar del camino genérico lo que es una operación del negocio.

Responde para continuar

¿Qué cambio corrige la edición de reservas de Pulsoandino?

Ver pista de ayuda

Registrar no impide, y la búsqueda ya estaba bien.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad