Contenido

Documentación detallada del módulo de Contenidos para la gestión de contenidos dentro de unidades de planificación en RedCollege.

Introducción

El módulo ContenidoModule proporciona métodos para gestionar contenidos educativos dentro de las unidades de planificación en el sistema RedCollege. Este módulo permite realizar operaciones CRUD sobre contenidos, gestionar recursos asociados, relacionar ítems curriculares y administrar archivos adjuntos.

Métodos

obtenerContenidosPorPlanificacion

Obtiene todos los contenidos asociados a una planificación específica.

Parámetros:

NombreTipoDescripciónRequerido
planificacionIdnumberID de la planificación

Retorna:

  • Promise con un array de objetos IContenido

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidos = await planificaciones.contenidos.obtenerContenidosPorPlanificacion(123)

obtenerContenidosPorUnidad

Obtiene todos los contenidos asociados a una unidad específica.

Parámetros:

NombreTipoDescripciónRequerido
unidadIdnumberID de la unidad

Retorna:

  • Promise con un array de objetos IContenido

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidos = await planificaciones.contenidos.obtenerContenidosPorUnidad(456)

obtenerContenidoPorId

Obtiene un contenido específico por su ID.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido

Retorna:

  • Promise con un objeto IContenido con los detalles del contenido

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenido = await planificaciones.contenidos.obtenerContenidoPorId(789)

crearNuevoContenido

Crea un nuevo contenido.

Parámetros:

NombreTipoDescripciónRequerido
dataIContenidoFormDatos del contenido a crear

Propiedades de IContenidoForm:

PropiedadTipoDescripciónRequerido
unidadIdnumber | nullID de la unidad
titulostring | nullTítulo del contenido
fechaInicioDate | nullFecha de inicio
fechaFinDate | nullFecha de finalización
contenidoPlanificadostring | nullDescripción del contenido planificadoNo
evaluacionstring | nullDescripción de la evaluaciónNo
isCumplidobooleanIndica si el contenido está cumplido
isVisiblebooleanIndica si el contenido es visible
haveAdecuacionesbooleanIndica si tiene adecuaciones curricularesNo
itemsEntradaIItemEntradaCurricularÍtems de entrada curricularNo

Retorna:

  • Promise con un objeto IContenido del contenido creado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const nuevoContenido = await planificaciones.contenidos.crearNuevoContenido({
  unidadId: 456,
  titulo: 'Introducción a la geometría',
  fechaInicio: new Date('2023-07-10'),
  fechaFin: new Date('2023-07-14'),
  contenidoPlanificado: 'Conceptos básicos de geometría plana',
  evaluacion: 'Quiz de conceptos geométricos',
  isCumplido: false,
  isVisible: true
})

actualizarContenido

Actualiza un contenido existente.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido a actualizar
dataPartialDatos parciales para actualizar

Retorna:

  • Promise con un objeto IContenido con los datos actualizados

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidoActualizado = await planificaciones.contenidos.actualizarContenido(789, {
  titulo: 'Introducción a la geometría (revisado)',
  contenidoPlanificado: 'Conceptos básicos de geometría plana y espacial',
  isCumplido: true
})

eliminarContenido

Elimina un contenido existente.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido a eliminar

Retorna:

  • Promise con un objeto IContenido del contenido eliminado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidoEliminado = await planificaciones.contenidos.eliminarContenido(789)

obtenerItemsEntrada

Obtiene los ítems de entrada curricular asociados a un contenido.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido

Retorna:

  • Promise con un array de objetos IItemEntradaCurricular

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const items = await planificaciones.contenidos.obtenerItemsEntrada(789)

asociarItemsAContenido

Asocia ítems de entrada curricular a un contenido existente.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido
itemsIdsnumberArray de IDs de ítems a asociar

Retorna:

  • Promise con un objeto IContenido actualizado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidoActualizado = await planificaciones.contenidos.asociarItemsAContenido(
  789, 
  [123, 124, 125]
)

asociarArchivoAContenido

Asocia un archivo existente a un contenido.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido
archivoIdnumberID del archivo a asociar

Retorna:

  • Promise con un objeto IArchivo con los datos del archivo asociado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const archivoAsociado = await planificaciones.contenidos.asociarArchivoAContenido(789, 101)

softDeleteArchivoAsociado

Elimina temporalmente (soft delete) un archivo asociado a un contenido.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido
archivoIdnumberID del archivo a eliminar

Retorna:

  • Promise con un objeto IArchivo del archivo eliminado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const archivoEliminado = await planificaciones.contenidos.softDeleteArchivoAsociado(789, 101)

destroyArchivo

Elimina permanentemente un archivo asociado a un contenido.

Parámetros:

NombreTipoDescripciónRequerido
idnumberID del contenido
archivoIdnumberID del archivo a eliminar permanentemente

Retorna:

  • Promise con un objeto IArchivo del archivo eliminado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
await planificaciones.contenidos.destroyArchivo(789, 101)

obtenerDiasHabilesContenido

Obtiene los días hábiles disponibles para un contenido.

Parámetros:

NombreTipoDescripciónRequerido
contenidoIdnumberID del contenido

Retorna:

  • Promise con un array de objetos DateTime representando días hábiles

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const diasHabiles = await planificaciones.contenidos.obtenerDiasHabilesContenido(789)

duplicarContenido

Duplica un contenido existente.

Parámetros:

NombreTipoDescripciónRequerido
contenidoIdnumberID del contenido a duplicar

Retorna:

  • Promise con un objeto IContenido del nuevo contenido duplicado

Ejemplo de uso:

const { planificaciones } = useNuxtApp().$apis
const contenidoDuplicado = await planificaciones.contenidos.duplicarContenido(789)

Consideraciones importantes

  • La mayoría de los métodos requieren autenticación previa en el sistema.
  • Los contenidos están organizados jerárquicamente: Planificación > Unidad > Contenido.
  • Las fechas deben proporcionarse como objetos Date o DateTime en el formato adecuado.
  • Al crear o actualizar contenidos, se pueden especificar propiedades parciales según la necesidad.
  • Las operaciones de duplicación copian tanto el contenido principal como sus relaciones y archivos asociados.

Errores comunes

  • 404 Not Found: El contenido o recurso solicitado no existe
  • 403 Forbidden: El usuario no tiene permisos para acceder o modificar el contenido
  • 400 Bad Request: Datos enviados incorrectos o incompletos
  • 500 Internal Server Error: Error en el servidor, intentar más tarde

Interfaces relacionadas

Las principales interfaces utilizadas por este módulo son:

  • IContenido: Representa un contenido completo con todas sus relaciones
  • IContenidoForm: Formato para crear o actualizar contenidos
  • IItemEntradaCurricular: Representa un ítem de entrada curricular
  • IArchivo: Representa un archivo asociado a un contenido
  • IContenidoActividad: Representa una actividad asociada a un contenido
  • IContenidoRecurso: Representa un recurso asociado a un contenido