Bitácora de crédito (Vol. 5)

por Halí - publicado: Agosto 24, 2023
LaravelBackend

Ahora actualizaremos el comportamiento de los otros métodos en el controlador de tarjetas de crédito.

Nos falta:

  • GET - Mostrarla
  • PUT - Actualizarla
  • DELETE - Eliminarla

El GET es sencillo, bastará una línea de código para mostrar los datos de la tarjeta al usuario.

Índice

Tarjeta de crédito

GET

Cómo Laravel maneja la autorización a nivel de recurso en el controlador, no necesitamos autorizar al usuario en cada función, por ello bastará con regresar la tarjeta dentro de un CreditCardResource en formato JSON.

Aunque también tenemos que cambiar el tipo de respuesta de la función.

public function show(CreditCard $creditCard): JsonResponse
{
    return response()->json(new CreditCardResource($creditCard));
}

Ver código  (GitHub)

PUT

Ahora continuamos con la actualización de datos de una tarjeta.

Para ello utilizaremos un form request también, en este caso UpdateCreditCardRequest, que justamente es el primer parámetro de nuestra función, seguido por la tarjeta (debemos dejar este segundo parámetro ya que Laravel lo utiliza para la autorización, y el form request lo necesita también para hacer algunas validaciones).

Ver código  (GitHub)

Cómo ves, actualizar una tarjeta es sencillo ya que se tienen los form requests. Ahora bien, es necesario que tengamos en cuenta que las validaciones que suceden ahí son importantes.

Validaciones

Recordemos algunas de las reglas que estamos usando y que seguramente utilizaremos también más adelante:

  • sometimes: Sirve para validar que el campo a veces no se encontrará presente en nuestra solicitud, y esto lo hacemos porque es posible que el usuario quiera solamente actualizar el nombre de la tarjeta o su fecha de corte, pero no otros datos y no es necesario que también los envíe.
  • required: La usamos en conjunto con sometimes, ya que si el atributo está presente en la solicitud, y es requerido, entonces no puede ser null ni estar vacío.
  • string: Valida una cadena de caracteres.
  • max:{number}: Valida un tamaño máximo.
  • integer: Valida un número entero.

Como sea, puedes ver las reglas de validación aquí.

DELETE

Por último vamos a actualizar la función destroy que será ejecutada cuando llegue una solicitud DELETE.

Para ello (y por ahora), vamos a eliminar los datos de la tarjeta.

Nuestra respuesta será un 204, pues no tendrá contenido.

Ver código  (GitHub)

Fin del CRUD

Así terminamos el CRUD completo (Create, Read, Update, Delete) de nuestro recurso tarjeta de crédito. Y se puede apreciar lo simple que es hacer esto con Laravel. Continuaremos haciendo el CRUD para las transacciones en el siguiente sprint.