, Correçoes na busca da API para ver os ultimos planos

This commit is contained in:
2026-08-28 17:03:37 -03:00
parent bfa474262f
commit 3e51d0e03b
6 changed files with 603 additions and 36 deletions

View File

@@ -3329,17 +3329,46 @@ silenciosa que acerta é invisível, mas a que erra é indefensável.
## Sobre buscar o plano por nome na API
**Não é possível.** A documentação
(https://documentation.simpliroute.com) não expõe endpoint que **liste** planos —
só `POST /v1/plans/create-plan/` (onde o plano tem `name`),
`GET /v1/plans/{planned_date}/vehicles/` e `GET /v1/plans/routes/{PLAN_ID}/visits/`.
A lista de planos que aparece no site deles é da interface web. Por isso o nome é
**colado pelo operador** e casado localmente.
> ### ✅ CORRIGIDO EM 28/08/2026 — o "não é possível" abaixo estava ERRADO
>
> **`GET /v1/routes/plans/` existe** e devolve os planos com o `name` que a
> operação usa. Verificado contra a API real (`bin/sondar_planos`): **138 planos,
> 185 KB, 0,86 s**, nomes como `EMAD SETEMBRO 2026` e `UBS OESTE AGOSTO 2026`.
> Não é documentado. O endpoint até estava na lista de candidatos do
> `bin/sondar_plano_do_dia` — **o que faltou foi rodar o script**; a conclusão
> "não é possível" foi tirada só da documentação.
>
> A cadeia inteira fecha, sem adivinhar data nenhuma:
>
> | chamada | devolve |
> |---|---|
> | `GET /v1/routes/plans/` | `name`, `start_date`, `end_date`, `created`, `routes[]` |
> | `GET /v1/routes/routes/{uuid}/` | `vehicle` (id), `planned_date`, `total_visits`, `plan` |
> | `GET /v1/plans/routes/{uuid}/visits/` | `order`, `vehicle_id`, `reference` (NF), `title` |
> | `GET /v1/routes/vehicles/` | traduz `634185` → `GADE_057` |
>
> **Nenhum filtro funciona** nessa rota: `ordering`, `limit`, `page`, `page_size`,
> `search`, `name`, `planned_date`, `planned_date__gte`, `created_at__gte` e
> `status` devolveram os mesmos 138 itens do controle sem parâmetro. Então "os 5
> mais recentes" é corte em Ruby depois de baixar tudo — `SimpliRoute::Client#planos`.
> Ordena por `created`, e não por `start_date`, porque a janela do plano é um
> INTERVALO (o EMAD SETEMBRO 2026 vai de 31/08 a 08/09) — era exatamente isso que
> tornava a data impossível de adivinhar.
>
> Pela NF também fecha: a visita traz `route` (uuid) e a rota traz `plan` (uuid).
>
> **Lição:** conclusão tirada de documentação não é conclusão. A própria memória
> desta integração já dizia que a API ignora parâmetro desconhecido em silêncio —
> ela também não anuncia as rotas que tem.
> `GET /v1/plans/{planned_date}/vehicles/` devolve veículos + UUIDs de rota por
> data — é o degrau (a) que o `Romaneios::PlanoDoDia` hoje tenta adivinhar. Vale
> checar com `bin/sondar_plano_do_dia`, que ganhou uma seção `[4]` procurando
> endpoint de planos com nome.
O texto original, mantido para contexto de como se chegou à conclusão errada:
> **Não é possível.** A documentação
> (https://documentation.simpliroute.com) não expõe endpoint que **liste** planos —
> só `POST /v1/plans/create-plan/` (onde o plano tem `name`),
> `GET /v1/plans/{planned_date}/vehicles/` e `GET /v1/plans/routes/{PLAN_ID}/visits/`.
> A lista de planos que aparece no site deles é da interface web. Por isso o nome é
> **colado pelo operador** e casado localmente.
## 📂 Arquivos