/videoclub-springboot-api

Videoclupy. API de videoclub hecha con Spring Boot, Lombok y MapStruct. (IFCD0210)

Primary LanguageJavaGNU Affero General Public License v3.0AGPL-3.0

videoclub-springboot-api

Videoclupy!

Requisitos

Teniendo las siguientes entidades:

  1. Género:
    • Código (Usar enumeración)
    • Descripción.
  2. Película:
    • Título. Obligatorio.
    • Año: Obligatorio. Número positivo mayor que 1900
    • Duración: Obligatorio. Número positivo menor que 500.
    • Actores: Por lo menos debe tener uno.
    • Género: Obligatorio.
    • Ejemplares. Lista de ejemplares
  3. Actor:
    • Nombre. Obligatorio
    • Primer Apellido: Obligatorio
    • Segundo Apellido: Sólo podrá venir relleno si está cubierto el primer apellido.
    • Fecha de Nacimiento: Obligatorio y mayor que 1/1/1900
  4. Ejemplar
    • Estado. Obligatorio. Enumerado: Libre, Reservado, Alquilado, Comprado
    • Fecha alta en la tienda (stock)
    • Fecha baja en la tienda (stock)
    • Fecha salida de la tienda (alquiler / compra)
    • Fecha devolución en la tienda (alquiler / compra)

Se pide:

  1. Por defecto, el registro de películas vacío salvo los géneros que serán Comedia, Western, Ciencia-Ficción, Romántica e Histórica.
  2. Crear métodos CRUD para los actores.
  3. Crear métodos CRUD para las películas.
  4. Crear interfaz para dar de alta actores y poder modificar sus datos.
  5. Crear interfaz para localizar películas por título, año, duración, nombre del autor, primer apellido del autor.
  6. Las validaciones se realizarán mediante constraints en los DTO correspondientes.
  7. Crear interfaz para permitir alquilar y devolver ejemplares de películas, así como la gestión de su stock (opcionalmente).

API Urls:

  • GET -> /api/privado/generos/: listar géneros.

  • GET -> /api/privado/peliculas/: listar películas.

  • GET -> /api/privado/peliculas/{id}: Obtener una película.

  • POST -> /api/privado/peliculas: Crear Película.

  • PUT -> /api/privado/peliculas/{id}: Modificar película.

  • DELETE -> /api/privado/peliculas/{id}: Borrar película.

  • GET -> /api/privado/actores/: listar actores.

  • GET -> /api/privado/actores/{id}: Obtener una actor.

  • POST -> /api/privado/actores: Crear actor.

  • PUT -> /api/privado/actores/{id}: Modificar actor.

  • DELETE -> /api/privado/actores/{id}: Borrar actor.

  • GET -> /api/privado/peliculas/search: Localizar películas.

  • GET -> /api/privado/peliculas/{id}/stock/: listar el stock de una película.

  • POST -> /api/privado/peliculas/{id}/stock/: Modificar (incrementar / decrementar) el stock de una película.

  • POST -> /api/privado/store/peliculas/{id}/e/{eid}/?action=sell: Compraventa de un ejemplar.

  • POST -> /api/privado/store/peliculas/{id}/e/{eid}/?action=rent: Alquila un ejemplar.

  • POST -> /api/privado/store/peliculas/{id}/e/{eid}/?action=return: Devuelve un ejemplar.

Getting Started

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely: