Ahora actualizaremos el comportamiento de los otros métodos en el controlador de tarjetas de crédito.
Nos falta:
GET
- MostrarlaPUT
- ActualizarlaDELETE
- 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));
}
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).
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 consometimes
, ya que si el atributo está presente en la solicitud, y es requerido, entonces no puede sernull
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.
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.