Saltar al contenido principal

RepoDocumentModule

Sube y elimina documentos. Thread-safe: varios hilos pueden subir a la vez con el mismo cliente.

Ejemplo General​

```python
docs = client.repo().document()
```

Métodos​

def __init__(config: ShoriConfig, http: HttpExecutor) -> None​

Parámetros:

  • config (ShoriConfig) —
  • http (HttpExecutor) —

def upload(request: UploadDocumentRequest | Mapping[str, Any]) -> str​

Sube un documento y lo asocia a un caso.

Los metadatos viajan como query params y el archivo como multipart/form-data. El request recibido no se modifica.

file acepta una ruta (str o Path, el nombre sale del archivo), bytes o un ShoriFile. Con bytes el nombre por defecto es "file": pasa file_name para darle uno real. Una ruta inexistente lanza FileNotFoundError.

Parámetros:

  • request (UploadDocumentRequest | Mapping[str, Any]) — UploadDocumentRequest o dict (file, casoId y casoTypeId obligatorios;

Retorna: str — UUID del documento creado.

Lanza:

  • FileNotFoundError — Si file es una ruta que no existe.
  • pydantic.ValidationError — Si faltan campos obligatorios.
  • ApiException — Si el API rechaza la subida.

Ejemplo de uso:

```python
# Desde una ruta del disco
doc_id = client.repo().document().upload(
UploadDocumentRequest(file="/tmp/contrato.pdf", caso_id="caso-uuid", caso_type_id="tipo-uuid")
)

# Desde bytes en memoria (indica el nombre)
doc_id = client.repo().document().upload(
UploadDocumentRequest(
file=pdf_bytes, file_name="contrato.pdf",
caso_id="caso-uuid", caso_type_id="tipo-uuid", category_id="cat-uuid",
)
)
```

def delete(uuid: str) -> None​

Elimina un documento del repositorio por su UUID.

Parámetros:

  • uuid (str) — UUID del documento.

Lanza:

  • ResourceNotFoundException — Si el documento no existe.

Ejemplo de uso:

```python
client.repo().document().delete("document-uuid")
```