feat: refine exercise focus area retrieval in training planning
- Updated the SQL query in the training planning module to fetch the primary exercise focus area more efficiently. - Enhanced error handling in the API utility to provide clearer feedback on potential issues, including CORS and URL errors, improving debugging for developers.
This commit is contained in:
parent
131b7d591d
commit
23d4281058
|
|
@ -117,7 +117,13 @@ def _fetch_sections(cur, unit_id: int) -> List[Dict[str, Any]]:
|
||||||
SELECT tusi.*,
|
SELECT tusi.*,
|
||||||
e.title AS exercise_title,
|
e.title AS exercise_title,
|
||||||
e.summary AS exercise_summary,
|
e.summary AS exercise_summary,
|
||||||
e.focus_area AS exercise_focus_area,
|
(
|
||||||
|
SELECT fa.name FROM exercise_focus_areas efa
|
||||||
|
JOIN focus_areas fa ON fa.id = efa.focus_area_id
|
||||||
|
WHERE efa.exercise_id = e.id
|
||||||
|
ORDER BY efa.is_primary DESC NULLS LAST, fa.name ASC
|
||||||
|
LIMIT 1
|
||||||
|
) AS exercise_focus_area,
|
||||||
ev.variant_name AS exercise_variant_name
|
ev.variant_name AS exercise_variant_name
|
||||||
FROM training_unit_section_items tusi
|
FROM training_unit_section_items tusi
|
||||||
LEFT JOIN exercises e ON tusi.exercise_id = e.id
|
LEFT JOIN exercises e ON tusi.exercise_id = e.id
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,9 @@ async function request(endpoint, options = {}) {
|
||||||
API_URL && API_URL.length > 0
|
API_URL && API_URL.length > 0
|
||||||
? `Verbindung zum API unter ${API_URL} fehlgeschlagen. Läuft das Backend (z. B. Port 8098) und ist CORS erlaubt?`
|
? `Verbindung zum API unter ${API_URL} fehlgeschlagen. Läuft das Backend (z. B. Port 8098) und ist CORS erlaubt?`
|
||||||
: 'Kein VITE_API_URL gesetzt: Anfragen gehen an die Frontend-URL und schlagen oft fehl. Setze in .env z. B. VITE_API_URL=http://localhost:8098 und starte Vite neu.'
|
: 'Kein VITE_API_URL gesetzt: Anfragen gehen an die Frontend-URL und schlagen oft fehl. Setze in .env z. B. VITE_API_URL=http://localhost:8098 und starte Vite neu.'
|
||||||
throw new Error(hint)
|
// Ursache oft: CORS (v. a. bei Fehler-Antworten ohne CORS-Header), Adblocker, falsche URL —
|
||||||
|
// Login kann trotzdem klappen wenn nur eine andere Route betroffen ist.
|
||||||
|
throw new Error(`${hint} [Technisch: ${e.message}; URL war ${endpoint}]`)
|
||||||
}
|
}
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user