Added two new apis

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-05-04 17:37:08 -06:00
parent 2be72ae7be
commit b3788beedd
30 changed files with 2736 additions and 2 deletions

View File

@@ -0,0 +1,264 @@
{
"moderation_examples": {
"delete_report": {
"description": "Eliminar un reporte inapropiado",
"endpoint": "POST /moderation/reports/delete",
"headers": {
"Content-Type": "application/json"
},
"request_body": {
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440000",
"reason": "Contenido violento",
"description": "La imagen contiene violencia explícita"
},
"response_success": {
"status": 200,
"body": {
"status": "success",
"message": "Reporte marcado para eliminación",
"action_id": "action-uuid-123"
}
},
"response_error": {
"status": 400,
"body": {
"detail": "Razón debe tener al menos 5 caracteres"
}
}
},
"close_account": {
"description": "Cerrar una cuenta de usuario por violación de términos",
"endpoint": "POST /moderation/accounts/close",
"headers": {
"Content-Type": "application/json"
},
"request_body": {
"moderator_id": 1,
"user_id": 42,
"reason": "Violación grave de términos de servicio",
"description": "Comportamiento acosador y spam sistemático",
"is_permanent": true
},
"response_success": {
"status": 200,
"body": {
"status": "success",
"message": "Cuenta marcada para cierre",
"action_id": "action-uuid-456"
}
}
},
"ban_user": {
"description": "Banear un usuario temporalmente",
"endpoint": "POST /moderation/users/ban",
"headers": {
"Content-Type": "application/json"
},
"request_body_temporal": {
"moderator_id": 1,
"user_id": 42,
"reason": "Lenguaje inapropiado repetido",
"duration_days": 7,
"description": "Ban de 7 días por contenido ofensivo"
},
"request_body_permanent": {
"moderator_id": 1,
"user_id": 99,
"reason": "Servidumbre reiterada de términos",
"duration_days": null,
"description": "Ban permanente"
},
"response_success": {
"status": 200,
"body": {
"status": "success",
"message": "Usuario marcado para ban",
"action_id": "action-uuid-789"
}
}
},
"warn_user": {
"description": "Emitir una advertencia a un usuario",
"endpoint": "POST /moderation/users/warn",
"headers": {
"Content-Type": "application/json"
},
"request_body": {
"moderator_id": 1,
"user_id": 42,
"reason": "Primera violación menor de comunidad",
"description": "Publicación con spam de enlaces"
},
"response_success": {
"status": 200,
"body": {
"status": "success",
"message": "Advertencia registrada",
"action_id": "action-uuid-012"
}
}
},
"review_content": {
"description": "Revisar y tomar decisión sobre un reporte",
"endpoint": "POST /moderation/content/review",
"headers": {
"Content-Type": "application/json"
},
"request_body_approve": {
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440000",
"action": "approve",
"reason": "Contenido reportado es legítimamente violatorio",
"notes": "Proceder inmediatamente con eliminación"
},
"request_body_reject": {
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440001",
"action": "reject",
"reason": "Contenido está dentro de políticas",
"notes": "El usuario tiene derecho a expresar esta opinión"
},
"request_body_needs_info": {
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440002",
"action": "needs_more_info",
"reason": "Necesaria información contextual adicional",
"notes": "Contactar con el reportante para detalles"
},
"response_success": {
"status": 200,
"body": {
"status": "success",
"message": "Revisión registrada: approve",
"action_id": "action-uuid-345"
}
}
},
"health_check": {
"description": "Verificar estado de la API",
"endpoint": "GET /health",
"response": {
"status": 200,
"body": {
"status": "healthy",
"service": "Moderation API"
}
}
},
"root_info": {
"description": "Obtener información sobre la API",
"endpoint": "GET /",
"response": {
"status": 200,
"body": {
"status": "ok",
"service": "VoxPopuli Moderation API",
"version": "1.0.0",
"description": "API para gestión de acciones de moderación",
"endpoints": {
"delete_report": "POST /moderation/reports/delete",
"close_account": "POST /moderation/accounts/close",
"ban_user": "POST /moderation/users/ban",
"warn_user": "POST /moderation/users/warn",
"review_content": "POST /moderation/content/review"
}
}
}
}
},
"curl_examples": {
"delete_report": "curl -X POST http://localhost:8003/moderation/reports/delete -H 'Content-Type: application/json' -d '{\"moderator_id\": 1, \"report_id\": \"550e8400-e29b-41d4-a716-446655440000\", \"reason\": \"Contenido violento\", \"description\": \"Imagen con violencia explícita\"}'",
"ban_user": "curl -X POST http://localhost:8003/moderation/users/ban -H 'Content-Type: application/json' -d '{\"moderator_id\": 1, \"user_id\": 42, \"reason\": \"Lenguaje inapropiado\", \"duration_days\": 7}'",
"warn_user": "curl -X POST http://localhost:8003/moderation/users/warn -H 'Content-Type: application/json' -d '{\"moderator_id\": 1, \"user_id\": 42, \"reason\": \"Primera advertencia\", \"description\": \"Spam de enlaces\"}'",
"close_account": "curl -X POST http://localhost:8003/moderation/accounts/close -H 'Content-Type: application/json' -d '{\"moderator_id\": 1, \"user_id\": 42, \"reason\": \"Violación de términos\", \"is_permanent\": true}'",
"review_approve": "curl -X POST http://localhost:8003/moderation/content/review -H 'Content-Type: application/json' -d '{\"moderator_id\": 1, \"report_id\": \"550e8400-e29b-41d4-a716-446655440000\", \"action\": \"approve\", \"reason\": \"Contenido legítimamente violatorio\"}'"
},
"rabbitmq_events": {
"moderation_delete_report": {
"queue": "moderation_queue",
"event_type": "moderation.delete_report",
"payload": {
"action_id": "uuid",
"event_type": "moderation.delete_report",
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440000",
"reason": "Contenido violento",
"description": "Imagen con violencia explícita",
"timestamp": "2026-05-04T10:30:00.000Z"
}
},
"moderation_close_account": {
"queue": "moderation_queue",
"event_type": "moderation.close_account",
"payload": {
"action_id": "uuid",
"event_type": "moderation.close_account",
"moderator_id": 1,
"user_id": 42,
"reason": "Violación de términos",
"description": "Comportamiento acosador",
"is_permanent": true,
"timestamp": "2026-05-04T10:30:00.000Z"
}
},
"moderation_ban_user": {
"queue": "moderation_queue",
"event_type": "moderation.ban_user",
"payload": {
"action_id": "uuid",
"event_type": "moderation.ban_user",
"moderator_id": 1,
"user_id": 42,
"reason": "Lenguaje inapropiado",
"duration_days": 7,
"is_permanent": false,
"description": "Ban temporal por contenido ofensivo",
"timestamp": "2026-05-04T10:30:00.000Z"
}
},
"moderation_warn_user": {
"queue": "moderation_queue",
"event_type": "moderation.warn_user",
"payload": {
"action_id": "uuid",
"event_type": "moderation.warn_user",
"moderator_id": 1,
"user_id": 42,
"reason": "Primera advertencia",
"description": "Spam de enlaces",
"timestamp": "2026-05-04T10:30:00.000Z"
}
},
"moderation_review_content": {
"queue": "moderation_queue",
"event_type": "moderation.review_content",
"payload": {
"action_id": "uuid",
"event_type": "moderation.review_content",
"moderator_id": 1,
"report_id": "550e8400-e29b-41d4-a716-446655440000",
"review_action": "approve",
"reason": "Contenido legítimamente violatorio",
"notes": "Proceder inmediatamente",
"timestamp": "2026-05-04T10:30:00.000Z"
}
}
}
}