feat(api): endpoint para subir audio TTS al artículo (#222) #224

Merged
rafa merged 2 commits from feat/issue-222-subir-audio into main 2026-08-31 11:35:01 +00:00
Owner

Añade POST /wp-json/fea/v1/subir-audio (mismo patrón que subir-avatar #175) para que Inma/Mixbot puedan enganchar el mp3 TTS al post sin depender de Hermes/PC de Rafa, tal como pide #222.

Probado por Claudix (QA) contra el WordPress local (wordpress-web) con el script de integración incluido: los 7 casos pasan (401 sin auth, 400 sin post_id, 400 sin fichero, 400 tipo incorrecto, 404 post inexistente, 201 subida válida con sha256 correcto, 201 reemplazo con previous_audio correcto).

⚠️ Bloqueante real antes de desplegar en prod, confirmado por lectura SSH (solo lectura, sin tocar nada): upload_max_filesize=2M / post_max_size=8M en el contenedor de producción. Los dos mp3 ya existentes en uploads/tts/ en prod pesan 5,3 MB y 6,2 MB — ya superan el límite actual, y el inventario del #212 tiene un caso de 198 MB. Sin subir estos límites (Coolify/php.ini del servicio feadulta-wp), el endpoint rechazará casi cualquier audio real antes de que el código llegue a ejecutarse. Es exactamente lo que preguntaba Codix — confirmado, hace falta subir el límite a al menos 256 MiB (o el máximo real esperado) antes de fusionar y desplegar.

(Nota aparte, no bloqueante para prod: en el WordPress local wp-content/uploads/tts/ estaba con dueño 1000:1000 de subidas anteriores por docker cp, y el endpoint fallaba con "no se pudo mover el archivo" hasta corregir permisos — en prod el directorio ya es www-data:www-data 775, así que ahí no hay problema, solo lo dejo anotado por si alguien repite las pruebas en local.)

Ref #222.

Añade `POST /wp-json/fea/v1/subir-audio` (mismo patrón que `subir-avatar` #175) para que Inma/Mixbot puedan enganchar el mp3 TTS al post sin depender de Hermes/PC de Rafa, tal como pide #222. Probado por Claudix (QA) contra el WordPress local (`wordpress-web`) con el script de integración incluido: los 7 casos pasan (401 sin auth, 400 sin post_id, 400 sin fichero, 400 tipo incorrecto, 404 post inexistente, 201 subida válida con sha256 correcto, 201 reemplazo con `previous_audio` correcto). **⚠️ Bloqueante real antes de desplegar en prod, confirmado por lectura SSH (solo lectura, sin tocar nada):** `upload_max_filesize=2M` / `post_max_size=8M` en el contenedor de producción. Los dos mp3 ya existentes en `uploads/tts/` en prod pesan 5,3 MB y 6,2 MB — **ya superan el límite actual**, y el inventario del #212 tiene un caso de 198 MB. Sin subir estos límites (Coolify/php.ini del servicio `feadulta-wp`), el endpoint rechazará casi cualquier audio real antes de que el código llegue a ejecutarse. Es exactamente lo que preguntaba Codix — confirmado, hace falta subir el límite a al menos 256 MiB (o el máximo real esperado) antes de fusionar y desplegar. (Nota aparte, no bloqueante para prod: en el WordPress **local** `wp-content/uploads/tts/` estaba con dueño `1000:1000` de subidas anteriores por `docker cp`, y el endpoint fallaba con "no se pudo mover el archivo" hasta corregir permisos — en **prod** el directorio ya es `www-data:www-data 775`, así que ahí no hay problema, solo lo dejo anotado por si alguien repite las pruebas en local.) Ref #222.
rafa added 1 commit 2026-08-31 11:18:23 +00:00
rafa added 1 commit 2026-08-31 11:32:33 +00:00
rafa merged commit 815412f7fa into main 2026-08-31 11:35:01 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rafa/feadulta#224