Obtener Comentarios Post (1) - [obtain-comments2]
🧾 Descripción
Obtiene los comentarios de una publicación específica del módulo Publicaciones (Frappe/ERPNext) junto con información adicional del empleado que realizó cada comentario.
El servicio:
-
Consulta los comentarios del documento
Publicaciones/{post_name}. -
Obtiene la lista de empleados activos desde ERP para enlazar
owner → nombre_completo. -
Ordena todos los comentarios por fecha de creación en orden ascendente.
-
Devuelve la lista final enriquecida con el nombre completo del usuario comentador.
🚀 Endpoint
(La ruta final depende de la configuración en routes/api.php)
🔐 Seguridad
📥 Request Body
{
"cookie": "string",
"post_name": "string",
"start": 0,
"limit": 10
} |
Campos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| cookie | string | Sí | Cookie de sesión enviada por ERP para realizar consultas autenticadas. |
| post_name | string | Sí | Nombre (ID) de la publicación en ERP, ejemplo: "PUB-0001". |
| start | number | No | Índice inicial para paginación de comentarios. |
| limit | number | No | Cantidad máxima de comentarios a obtener. |
📤 Responses
✔️ 200 – Comentarios obtenidos correctamente
{
"data": [
{
"owner": "user@example.com",
"name": "COM-0001",
"content": "Buen trabajo equipo!",
"creation": "2025-01-01 10:30:00",
"nombre_completo": "Juan Pérez"
}
]
} |
❌ 400/500 – Error en la solicitud a ERPNext
Si ocurre una excepción desde Guzzle (cookie inválida, publicación inexistente, etc.):
Respuesta directa del error de ERPNext, ejemplo:
{"exc": ["Traceback...", "..."]} |
🧩 Lógica Interna (Resumen Técnico)
-
Validación de entradas
-
Se extraen:
cookie,post_name,start,limit.
-
-
Consulta de comentarios
-
Endpoint Frappe llamado:
GET APICAPACITACION/resource/Publicaciones/{post_name} -
Envia parámetros:
-
-
Consulta de empleados activos
-
Solicita:
Employee?fields=["name","nombre_completo","user_id"]&filters=[["status","=","Active"]] -
Construye un mapa:
user_id → nombre_completo
-
-
Enriquecimiento de comentarios
-
A cada comentario se le agrega:
nombre_completo = jsonEmployee[owner] ?? owner
-
-
Ordenamiento
-
Orden ascendente por la fecha
creation.
-
-
Resultado final
{ "data": [ ...comentarios_ordenados... ] } |
📚 Schema de respuesta final
Comentario:
{
"owner": "string",
"name": "string",
"content": "string",
"creation": "datetime",
"nombre_completo": "string"
} |
No hay comentarios para mostrar
No hay comentarios para mostrar