Files
contracts/History/sessions/session-12-lowercase-convert.md
T

32 lines
1.8 KiB
Markdown

# Session 12 — 2026-06-23: v1.0.158 — Python lowercase + /convert-doc
## Баги исправлены
### 1. `resp.parsed` undefined → «Неизвестная ошибка»
**Причина:** index.cfm строка 438: `r.OK` / `r.ERROR` (Lucee uppercase), Python возвращает `r.ok` / `r.error` (lowercase).
Promise всегда падал в `reject`, `resp` становился Error-объектом, `resp.parsed` → undefined.
**Исправление:** `r.OK``r.ok`, `r.ERROR``r.error`.
### 2. `.doc` → «Конвертер»
**Причина:** `/convert-doc` был в nginx но отсутствовал в новом convert_server.py.
**Исправление:** Добавлен `_handle_convert_doc()` — логика из convert_doc.py (libreoffice headless).
## Архитектура (v1.0.158)
```
Браузер → contracts.kube5s.ru (nginx) → VM :8766 Python
├── /upload (multipart → DB + parse)
├── /convert-doc (DOC→DOCX)
├── /api/supplements?contract_id=X
├── /api/documents/<id>
├── /process-v2 (SSE)
└── /health
→ contractor.luceek8s.dev.nubes.ru (Lucee — только index.cfm SPA)
```
## Ключевые правила
- Python API: ВСЕ ключи lowercase (`ok`, `error`, `doc_id`, `parsed`)
- Lucee serializeJSON: UPPERCASE (`OK`, `ERROR`) — больше не используется в JS
- index.cfm: все запросы через `VM_API = 'https://contracts.kube5s.ru'`
- БД: VM PostgreSQL 127.0.0.1:5432/baza, пользователь super