Refactorización de la API de reclutadores en Devlog-ist/landing: Estatus de Recomendación y Autorización con Sanctum
Introducción
En el proyecto Devlog-ist/landing, nos enfocamos en mejorar la API para reclutadores. Este proyecto se centra en proporcionar una plataforma de reclutamiento eficiente y fácil de usar. Recientemente, hemos realizado una refactorización para resolver errores detectados por PHPStan y abordar problemas identificados en la revisión del código.
El Desafío
La API de reclutadores presentaba varios desafíos que necesitábamos abordar:
- Errores de PHPStan: El análisis estático del código reveló errores que debían corregirse para garantizar la calidad del código.
- Problemas de Revisión de Código: Se identificaron áreas de mejora durante la revisión del código.
- Estado de Recomendación: Necesidad de definir claramente los estados de recomendación.
- Autorización: Garantizar que las comprobaciones de autorización se realicen correctamente.
La Solución
Implementamos las siguientes mejoras para abordar los desafíos mencionados:
-
Uso de Enums para el Estado de Recomendación:
Se reemplazaron los valores codificados para el estado de recomendación con un
enum. Esto proporciona una forma más clara y mantenible de definir los posibles estados.
enum RecommendationStatus: string { case PENDING = 'pending'; case APPROVED = 'approved'; case REJECTED = 'rejected'; } ```
Este `enum` define los estados posibles para una recomendación, mejorando la legibilidad y reduciendo errores.
-
Eliminación de
rateLimitPeriodMinutesNo Utilizado:Se eliminó el método
rateLimitPeriodMinutesya que no estaba en uso, simplificando el código. -
Uso de
tokenCan()para Comprobaciones de Autorización con Sanctum:Se actualizó el código para utilizar
tokenCan()para verificar las habilidades de Sanctum. Esto asegura que las comprobaciones de autorización sean correctas y seguras.if ($user->tokenCan('recruiters.create')) { // Permite al usuario crear reclutadores }Este fragmento de código muestra cómo se utiliza
tokenCan()para verificar si un usuario tiene el permiso necesario para crear reclutadores. -
Añadir Anotaciones de Tipo para Cumplir con PHPStan:
Se agregaron anotaciones de tipo adecuadas para garantizar el cumplimiento con PHPStan. Esto ayuda a prevenir errores y mejora la calidad del código.
Decisiones Clave
- Estructura Clara del Código: El uso de
enumsayuda a clarificar el estado de recomendación. - Simplificación: Eliminar el código no utilizado reduce la complejidad.
- Seguridad: El uso adecuado de
tokenCan()garantiza la correcta autorización.
Resultados
- Código más limpio y mantenible.
- Reducción de posibles errores debido al uso de
enumsy anotaciones de tipo. - Mayor seguridad en las comprobaciones de autorización.
Lecciones Aprendidas
Es fundamental mantener el código limpio, seguro y bien documentado. La refactorización continua y el uso de herramientas como PHPStan ayudan a garantizar la calidad del código a lo largo del tiempo.