fix(api): handle 204 No Content в apiFetch (#1219) #1249

Merged
bot-backend merged 1 commit from fix/api-fetch-204-no-content into main 2026-06-13 05:13:44 +00:00

1 commit

Author SHA1 Message Date
8f84776969 fix(api): handle 204 No Content в apiFetch (#1219)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (push) Successful in 48s
CI / frontend-tests (pull_request) Successful in 49s
CI / changes (push) Successful in 6s
CI / backend-tests (push) Has been skipped
apiFetch безусловно звал response.json() после !response.ok-check, что
падало SyntaxError'ом на пустом теле 204. DELETE /custom-pois/{id} и
DELETE /admin/site-finder/weight-profiles/{id} объявлены status_code=204
→ mutation promise реджектился → onSuccess/invalidateQueries не срабатывали
→ POI/профиль виден в UI до случайного рефетча, хотя реально удалён на
сервере. Silent fail для DELETE кастомных POI на SiteMap (#1219, P2).

Fix: на 204 или пустом теле resolve'имся с undefined (аналог семантики
apiFetchWithStatus). Сигнатура Promise<T> сохранена — 80 не-204 callers
backward-compatible; два DELETE-хука уже типизированы <unknown>/<void>
и корректно игнорируют возврат.

6 новых vitest кейсов (api.test.ts): 204, empty-body-200, 200+JSON, 404,
500, regression guard. 73/73 frontend тестов зелёные, lint+tsc clean.

Closes #1219
2026-06-13 10:04:11 +05:00