PHP API

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:

  1. 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.
  1. Eliminación de rateLimitPeriodMinutes No Utilizado:

    Se eliminó el método rateLimitPeriodMinutes ya que no estaba en uso, simplificando el código.

  2. 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.

  3. 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

  1. Estructura Clara del Código: El uso de enums ayuda a clarificar el estado de recomendación.
  2. Simplificación: Eliminar el código no utilizado reduce la complejidad.
  3. 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 enums y 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.

Refactorización de la API de reclutadores en Devlog-ist/landing: Estatus de Recomendación y Autorización con Sanctum
Gerardo Ruiz

Gerardo Ruiz

Author

Share: