Upload Appointment Act

View as Markdown
# Upload Appointment Act (`POST` - REST) A diferencia del resto de la API, este método no utiliza la arquitectura GraphQL. Se trata de un **endpoint REST nativo** diseñado específicamente para la transferencia de archivos binarios, permitiendo la carga del acta o informe final de la cita provisto de su respectivo Código de Verificación Electrónica (CVE/CEA) o correspondiente. ### Detalles de la Solicitud - **Método HTTP:** `POST` - **URL:** `https://api.ovac.pre.councilbox.com/council/:councilId/act` - **Content-Type:** `multipart/form-data` ### Cabeceras (Headers) | **Key** | **Value** | **Requerido** | **Descripción** | | --- | --- | --- | --- | | **x-jwt-token** | {{token}} | SI | Token JWT de autenticación obtenido previamente en el método de login. | ## Referencia de la API ### Parámetros de Ruta (Path Parameters) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | councilId | Identificador único de la cita a la que se desea permitir el acceso. | SI | Integer | ### Cuerpo de la Petición (Body Parameters - `form-data`) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | file | Archivo físico del informe o acta (normalmente PDF) que contiene el CEA para almacenar en OVAC. | SI | File (Binary) | | notify | Control de notificaciones automáticas: <br>`true` -> Envía siempre una notificación al ciudadano informándole de la disponibilidad del documento (Valor por defecto si se omite). <br>Cualquier otro valor -> El sistema procesará el archivo sin enviar notificación al ciudadano. | NO | Boolean | > ⚙️ **Prerrequisitos de negocio:** Para que el backend acepte la carga del archivo, la cita debe encontrarse estrictamente en estado **`45`** (Procesando informe). Adicionalmente, este flujo requiere que la opción _"Mostrar footer en informe de cita"_ esté deshabilitada. ## Ejemplos de Código y Peticiones ### 1\. Ejemplo de comando cURL Al tratarse de una petición de tipo formulario multimedia (`multipart/form-data`), la estructura define los campos del cuerpo de forma independiente al archivo binario: ``` bash curl --location "https://api.ovac.pre.councilbox.com/council/64879/act" \ --header "x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzZTVhZTA1NC1jZGUyLTQ0MWEtYTY3Zi1kMGExNzYwYzUxNzYiLCJ1c2VyX2lkIjozNDc2LCJ0b2tlbl90eXBlIjoidXNlciIsImlhdCI6MTc3OTE3NjE2M30.0cWaj4uUaArUQR3C-RwqlpLafkX5Rih4LZs9ZPNpEFY" \ --form "file=@\"/Ruta/Documentos/Informes/64879.pdf\"" \ --form "notify=\"true\"" ``` ## Resultados Esperados (Respuestas HTTP) ### Caso A: Éxito (200 OK) Si la cita se encuentra en el estado correcto (`45`) y el archivo se procesa sin anomalías. ``` json { "success": true } ``` ### Caso B: Error de Validación (400 / 403 Bad Request) Si la cita ya ha sido cerrada, no está en estado `45`, o la configuración de la organización deniega la inserción manual del documento externo. ``` json { "message": "This council is not expecting this action" } ``` > 💡 **Tip para la integración en Postman:** > Al dar de alta esta petición en tu colección, ve a la pestaña **Body**, marca la opción **form-data** y, al escribir la clave `file`, pasa el ratón sobre el extremo derecho de la casilla de texto para cambiar el desplegable de **Text** a **File**. Esto habilitará el botón nativo para seleccionar y adjuntar tu PDF de prueba.

Authentication

x-jwt-tokenstring
JWT token obtained from Login.

Path parameters

councilIdstringRequired

Request

This endpoint expects a multipart form containing a file.
filefileRequired
notifybooleanOptional

Response

Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.