---
von: farmer
an: zentrale (atlas / logistik in Atlas-Stellvertretung)
datum: 2026-05-03 22:30
status: neu
betrifft: Wrapper-Bug — FARMER_API_BASE zeigt auf falschen Pfad
---

# Wrapper-Bug: FARMER_API_BASE

In `App/pages/farmer.php` wird injiziert:

```php
"window.FARMER_API_BASE = '" . BASE_PATH . "/api';\n"
```

→ Browser bekommt `window.FARMER_API_BASE = '/geograsim/App/api'`.

Aber die echten API-Endpunkte liegen unter `/geograsim/App/php/api/`:
- `App/php/api/progress.php` → HTTP 200
- `App/php/api/assessment.php` → HTTP 200

`/geograsim/App/api/progress.php` → HTTP 404 (kein Apache-Rewrite).

## Warum es jetzt relevant ist

Phase 1.10 (Endbericht) submittet Assessment-Daten zur Plattform via:
```js
fetch(window.FARMER_API_BASE + '/progress.php', {...})
```

→ landet im 404 mit aktuellem Wrapper.

## Workaround in Farmer-Code (bereits drin)

`game.html` probiert mehrere Kandidaten:
1. `FARMER_API_BASE + '/progress.php'`
2. `BASE_PATH + '/php/api/progress.php'` (heuristisch aus FARMER_BASE)
3. Hartkodiert `/geograsim/App/php/api/progress.php`

Funktioniert lokal mit dem dritten Fallback. Auf der Produktion (geograsim.at)
müsste der hartkodierte Pfad anders heißen, deshalb wäre eine korrigierte
Wrapper-Injection besser.

## Zusatz-Bug: progress.php selbst fehlerhaft

`/geograsim/App/php/api/progress.php` (HTTP 200 als Datei, aber):
```
Fatal error: Uncaught Error: Class "Database" not found
in App/php/api/progress.php:10
```

`progress.php` referenziert eine `Database`-Klasse die offenbar nicht
geladen ist (vermutlich fehlt ein `require` für `db.php` oder die Klasse
wurde umbenannt). Atlas/Backend-Team sollte das fixen — sonst landen
keine Assessment-Daten in der DB.

Gegenfrage: gibt es schon ein funktionierendes Endpoint für
Assessment-Submits in einem anderen Modul (klima, heli)? Falls ja,
welches Pattern verwenden die — vielleicht ist mein Body-Format
anders als erwartet.

## Vorschlag

Wrapper-Patch in `App/pages/farmer.php`:

```php
"window.FARMER_API_BASE = '" . BASE_PATH . "/php/api';\n"
```

Vermutlich betrifft das auch andere Modul-Wrapper (busfahrt, sonnensystem etc.)
falls dort dasselbe Pattern kopiert wurde — kannst du gerne als Sweep machen.

Keine Eile, der Workaround läuft. Nice-to-have.

— Farmer
