Skip to content

Hall Controller

Este controlador contiene funciones personalizadas para gestionar acciones relacionadas con las salas (halls). Implementa las siguientes funcionalidades:

  • Registro de inscripciones (sendInscription).
  • Acceso en vivo (accessDirect).
  • Filtrado dinámico de salas por fecha (filterDynamicDate).

Funcionalidades

1. sendInscription

Esta función registra o actualiza un ‘record’ cuando un usuario se inscribe en una sala específica.

Parámetros de entrada

  • Body (JSON):
    • Name (opcional): Nombre completo del usuario.
    • Phone (opcional): Teléfono de contacto.
    • Email (requerido): Correo electrónico del usuario.
    • Country (opcional): País de residencia.
    • Profession (opcional): Profesión del usuario.
    • Company (opcional): Empresa asociada.
    • Hall_id (requerido): Identificador de la sala.

Lógica de la función

  1. Valida que Email y Hall_id estén presentes.
  2. Busca en la base de datos un registro que coincida con el Email y el Hall_id.
  3. Si no existe, crea un nuevo registro con la información proporcionada.
  4. Si existe, actualiza el registro existente, marcándolo como firmado (Signed: true).
  5. Retorna un estado OK.

Respuesta

  • Status 200: Registro creado o actualizado correctamente.

2. accessDirect

Esta función registra o actualiza un ‘record’ cuando un usuario accede a una sala específica durante su emisión.

Parámetros de entrada

  • Body (JSON):
    • Igual que en sendInscription.

Lógica de la función

  1. Valida que Email y Hall_id estén presentes.
  2. Busca en la base de datos un registro que coincida con el Email y el Hall_id.
  3. Si no existe, crea un nuevo registro con la información proporcionada, habilitando el acceso en vivo (Live_entrance: true).
  4. Si existe, actualiza el registro existente, habilitando el acceso en vivo (Live_entrance: true).
  5. Retorna un estado OK.

Respuesta

  • Status 200: Registro creado o actualizado correctamente.

3. filterDynamicDate

Esta función devuelve las salas activas filtrándolas en base a una fecha.

Parámetros de entrada

  • Parámetros GET:
    • date (requerido): Fecha de referencia en formato ISO 8601.

Lógica de la función

  1. Valida que el parámetro date esté presente y sea válido.
  2. Recupera todas las salas con estado de publicación live y realiza un populate extensivo para incluir:
    • Relación con expertos, socios, programas y productos.
    • Componentes relacionados (hall-direct, hall-ondemand).
    • Multimedia asociada (imágenes, videos, etc.).
  3. Filtra las salas según las siguientes condiciones:
    • Si contienen un componente hall-direct con una startDate igual o posterior a la fecha proporcionada.
    • Si contienen un componente hall-ondemand con una finishDate posterior a la fecha actual.
  4. Devuelve la lista de salas filtradas.

Respuesta

  • Body:
    {
    "data": [ /* Listado de salas filtradas */ ]
    }