CaseFilesModule
Gestión de adjuntos de casos. Thread-safe.
Ejemplo General
```python
files = client.caso().files()
meta = files.search(AttachmentFilesFilter.builder().caso_id("c1").build())
```
Métodos
def __init__(config: ShoriConfig, http: HttpExecutor, repo_module: RepoModule, executor: Executor | None) -> None
Parámetros:
config(ShoriConfig) —http(HttpExecutor) —repo_module(RepoModule) —executor(Executor | None) —
def search(request: AttachmentFilesFilter) -> CaseFileSearchResult
Obtiene los metadatos de los adjuntos de un caso, sin descargar el contenido.
Parámetros:
request(AttachmentFilesFilter) —AttachmentFilesFilter(caso_idobligatorio;page_sizemáximo 150).
Retorna: CaseFileSearchResult — CaseFileSearchResult con files, count y num_elements.
Ejemplo de uso:
```python
res = client.caso().files().search(
AttachmentFilesFilter.builder().caso_id("caso-uuid").page_size(50).build()
)
for f in res.files or []:
print(f.file_name, f.is_valid, f.file_category_name)
```
def get_attachments(request: AttachmentFilesFilter) -> list[CasoFileSearchResponse]
Descarga los adjuntos de un caso (metadatos + file), paginando automáticamente.
Las descargas se hacen en paralelo. Cada elemento trae el contenido en file
(un ShoriFile).
Parámetros:
request(AttachmentFilesFilter) —AttachmentFilesFilter.
Retorna: list[CasoFileSearchResponse] — Lista de CasoFileSearchResponse con file poblado.
Lanza:
ApiException— Si falla la descarga de algún adjunto (fail-fast).
Ejemplo de uso:
```python
import os
os.makedirs("descargas", exist_ok=True) # save() no crea carpetas
adjuntos = client.caso().files().get_attachments(
AttachmentFilesFilter.builder().caso_id("caso-uuid").build()
)
for a in adjuntos:
print(a.file_name, a.file.size)
a.file.save("descargas")
```
def collect_attachments(request: AttachmentFilesFilter, executor: Executor | None) -> list[CasoFileSearchResponse]
Núcleo de get_attachments; público para que CaseModule reutilice un executor.
Parámetros:
request(AttachmentFilesFilter) —AttachmentFilesFilter.executor(Executor | None) — Executor para las descargas en paralelo, oNonepara usar el propio.
Retorna: list[CasoFileSearchResponse] — Lista de CasoFileSearchResponse con file poblado.
def update(request: CasoFileUpdateRequest | Mapping[str, Any]) -> None
Actualiza los metadatos de un adjunto (is_valid es False por defecto).
Parámetros:
request(CasoFileUpdateRequest | Mapping[str, Any]) —CasoFileUpdateRequestodictconidy, opcionalmente,
Ejemplo de uso:
```python
client.caso().files().update(
{"id": "file-uuid", "isValid": True, "categoryId": "cat-uuid"}
)
```
def delete(document_id: str) -> None
Elimina un documento adjunto de un caso.
Parámetros:
document_id(str) — ID del documento adjunto.
Lanza:
ResourceNotFoundException— Si el documento no existe.
Ejemplo de uso:
```python
client.caso().files().delete("document-uuid")
```