Acciones Personalizadas
Más allá de las operaciones CRUD estándar, Chamilo cuenta con una serie de controladores de acciones API personalizadas (en el orden de docenas) que manejan operaciones especializadas. El número exacto varía entre versiones; consulta src/CoreBundle/Controller/Api/ para ver el conjunto actual.
Ubicación
Las acciones personalizadas se encuentran en src/CoreBundle/Controller/Api/.
Acciones Personalizadas Destacadas
Documentos
CreateDocumentFileAction
Subir un archivo o crear una carpeta/enlace de documento
UpdateDocumentFileAction
Reemplazar el archivo de un documento
ReplaceDocumentFileAction
Reemplazar un archivo de documento, preservando sus IDs
MoveDocumentAction
Mover un documento a una carpeta diferente
UpdateVisibilityDocument
Alternar la visibilidad del documento para los estudiantes
DownloadAllDocumentsAction
Descargar todos los documentos de una carpeta como ZIP
DownloadSelectedDocumentsAction
Descargar un conjunto seleccionado de documentos como ZIP
DocumentUsageAction
Listar cursos/sesiones donde se utiliza un documento
DocumentLearningPathUsageAction
Listar rutas de aprendizaje donde se utiliza un documento
Glosario
CreateCGlossaryAction
Crear un término de glosario
UpdateCGlossaryAction
Actualizar un término de glosario
ExportCGlossaryAction
Exportar glosario a un archivo
ImportCGlossaryAction
Importar glosario desde un archivo
ExportGlossaryToDocumentsAction
Exportar glosario como un documento en el curso
GetGlossaryCollectionController
Obtener colección de glosario con filtrado personalizado
Enlaces
CreateCLinkAction
Crear un enlace externo
UpdateCLinkAction
Actualizar un enlace externo
CreateCLinkCategoryAction
Crear una categoría de enlace
UpdateCLinkCategoryAction
Actualizar una categoría de enlace
CheckCLinkAction
Verificar si la URL de un enlace es accesible
ExportCLinksAction
Exportar enlaces a un archivo
CLinkDetailsController
Obtener detalles de un enlace
CLinkImageController
Obtener o establecer una imagen de vista previa de un enlace
GetLinksCollectionController
Obtener colección de enlaces con filtrado personalizado
UpdateVisibilityLink
Alternar la visibilidad de un enlace
UpdateVisibilityLinkCategory
Alternar la visibilidad de una categoría de enlace
UpdatePositionLink
Reordenar enlaces
Rutas de Aprendizaje
CreateCLpAction
Crear una ruta de aprendizaje
LpReorderController
Reordenar elementos de una ruta de aprendizaje
Calendario
UpdateCCalendarEventAction
Actualizar un evento del calendario del curso
CalendarMyStudentsScheduleAction
Obtener el horario de los estudiantes de un profesor
Blog
CreateCBlogAction
Crear una publicación de blog
CreateBlogAttachmentAction
Adjuntar un archivo a una publicación de blog
UpdateVisibilityBlog
Alternar la visibilidad del blog
Dropbox
CreateDropboxFileAction
Subir un archivo a la dropbox (herramienta de intercambio de archivos)
Trabajos de Estudiantes (Tareas)
CreateStudentPublicationFileAction
Enviar un archivo de tarea
CreateStudentPublicationCommentAction
Agregar un comentario a una entrega
CreateStudentPublicationCorrectionFileAction
Subir un archivo de corrección para una entrega
Archivos Personales
CreatePersonalFileAction
Subir un archivo al espacio de archivos personales del usuario
UpdatePersonalFileAction
Actualizar un archivo personal
Social
LikeSocialPostController
Dar "Me gusta" a una publicación social
DislikeSocialPostController
Quitar "Me gusta" a una publicación social
CreateSocialPostAttachmentAction
Adjuntar un archivo a una publicación social
SocialPostAttachmentsController
Listar adjuntos en una publicación social
AbstractFeedbackSocialPostController
Clase base para acciones de retroalimentación en publicaciones sociales
Sesiones
CreateSessionWithUsersAndCoursesAction
Crear una sesión e inscribir usuarios y cursos en una sola llamada
Usuarios y URLs de Acceso
CreateUserOnAccessUrlAction
Crear un usuario y asociarlo con una URL de acceso
UserAccessUrlsController
Listar URLs de acceso a las que pertenece un usuario
UserSkillsController
Listar habilidades otorgadas a un usuario
Videoconferencia
VideoConferenceCallbackController
Manejar callbacks de proveedores externos de videoconferencia
Clases Base
BaseResourceFileAction
Clase base para acciones de carga de archivos; maneja el análisis multipart, la creación de nodos de recursos y el almacenamiento
Implementación de una Acción Personalizada
Las acciones personalizadas son controladores estándar de Symfony referenciados en las definiciones de operaciones de API Platform. El atributo #[ApiResource] reside en la entidad, y el parámetro controller: de cada operación apunta a la clase de acción:
La clase de acción en sí es un controlador invocable simple — los servicios se inyectan a través de los argumentos del método __invoke():
Puntos clave:
deserialize: falsese establece cuando la acción lee la solicitud directamente (por ejemplo, cargas de archivos multipart) en lugar de permitir que API Platform deserialice un cuerpo JSON.Las acciones de carga de archivos generalmente extienden
BaseResourceFileAction, que maneja el análisis multipart y la conexión de nodos de recursos.La seguridad se aplica a través del parámetro
security:en la operación, no dentro del controlador.
Última actualización
¿Te fue útil?