4. Servicios - dblancou/ApiLetterboxdProyectoFinal GitHub Wiki

En la API del Proyecto Final, los servicios encapsulan la lógica de negocio y coordinan las operaciones entre los controladores y los repositorios. Los servicios aseguran que las operaciones sean consistentes y aplican las reglas de negocio necesarias. A continuación se describen los principales servicios utilizados en la API.

Servicios de Películas (FilmService)

El FilmService maneja toda la lógica relacionada con las películas. Es responsable de crear, actualizar, eliminar y recuperar información sobre las películas. También incluye funcionalidades para buscar películas basándose en diferentes criterios.

Funcionalidades Principales

  • Crear Película: Permite agregar una nueva película a la base de datos.
  • Actualizar Película: Permite modificar los detalles de una película existente.
  • Eliminar Película: Permite eliminar una película de la base de datos.
  • Obtener Película por ID: Recupera la información de una película específica utilizando su ID.
  • Listar Todas las Películas: Devuelve una lista de todas las películas disponibles en la base de datos.
  • Buscar Películas por Género: Permite buscar películas que pertenecen a un género específico.
  • Buscar Películas por Director: Permite buscar películas dirigidas por un director específico.
  • Buscar Películas por Título: Permite buscar películas cuyo título contenga una palabra clave.
  • Obtener Últimas Películas: Recupera las películas más recientes añadidas a la base de datos.
  • Obtener Películas Mejor Valoradas: Recupera las películas con las mejores calificaciones en IMDb.

Servicios de Listas de Películas (MovieListService)

El MovieListService gestiona la lógica relacionada con las listas de películas personalizadas. Permite a los usuarios crear, actualizar, eliminar y recuperar sus listas de películas. También maneja la asociación de películas a estas listas.

Funcionalidades Principales

  • Crear Lista de Películas: Permite a los usuarios crear una nueva lista personalizada de películas.
  • Actualizar Lista de Películas: Permite modificar los detalles de una lista existente, incluyendo agregar o eliminar películas.
  • Eliminar Lista de Películas: Permite eliminar una lista de películas de la base de datos.
  • Obtener Lista de Películas por ID: Recupera la información de una lista específica utilizando su ID.
  • Listar Todas las Listas de Películas: Devuelve una lista de todas las listas de películas creadas por los usuarios.
  • Obtener Listas de Películas por Usuario: Recupera todas las listas de películas creadas por un usuario específico.

Servicios de Reseñas (ReviewService)

El ReviewService maneja la lógica relacionada con las reseñas de películas. Permite a los usuarios escribir, actualizar, eliminar y recuperar reseñas de películas. Este servicio asegura que cada reseña esté asociada correctamente a un usuario y a una película.

Funcionalidades Principales

  • Crear Reseña: Permite a los usuarios escribir una nueva reseña para una película.
  • Actualizar Reseña: Permite modificar el contenido y la calificación de una reseña existente.
  • Eliminar Reseña: Permite eliminar una reseña de la base de datos.
  • Obtener Reseña por ID: Recupera la información de una reseña específica utilizando su ID.
  • Listar Todas las Reseñas: Devuelve una lista de todas las reseñas almacenadas en la base de datos.
  • Obtener Reseñas por Usuario: Recupera todas las reseñas escritas por un usuario específico.
  • Obtener Reseñas por Película: Recupera todas las reseñas asociadas a una película específica.

Servicios de Usuarios (UserService)

El UserService gestiona la lógica relacionada con los usuarios de la aplicación. Permite el registro, autenticación y gestión de la información de los usuarios. También maneja las interacciones entre usuarios, como seguir y dejar de seguir a otros usuarios.

Funcionalidades Principales

  • Registrar Usuario: Permite a los nuevos usuarios registrarse en la aplicación.
  • Autenticar Usuario: Permite a los usuarios existentes iniciar sesión en la aplicación.
  • Eliminar Usuario: Permite eliminar la cuenta de un usuario.
  • Obtener Usuario por Nombre de Usuario: Recupera la información pública de un usuario específico utilizando su nombre de usuario.
  • Seguir a un Usuario: Permite a los usuarios seguir a otros usuarios, creando una relación de seguidores/seguidos.
  • Dejar de Seguir a un Usuario: Permite a los usuarios dejar de seguir a otros usuarios.
  • Obtener Seguidores de un Usuario: Devuelve una lista de todos los seguidores de un usuario específico.
  • Obtener Seguidos de un Usuario: Devuelve una lista de todos los usuarios que un usuario específico está siguiendo.