fix: correct parameter names for taskmark (taskId) and metadelete (id)
Verified via FW_DEBUG=1: taskmark expects 'taskId' (not 'metaId'), metadelete expects 'id' (not 'metaId'). Wrong names caused silent no-ops because the API wraps errors in a00.un.un instead of top-level un/ex, bypassing the standard error check in fw_client. Also documents verified response structures in SPEC.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -189,7 +189,7 @@ offener Punkte (z.B. `type`-Parameter beim Login, Kreis-Felder in Response).
|
||||
POST https://api.familywall.com/api/taskcreate2
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
**Body-Parameter (aus API-Pattern abgeleitet, zu verifizieren):**
|
||||
**Body-Parameter (verifiziert):**
|
||||
|
||||
| Parameter | Pflicht | Wert |
|
||||
|---|---|---|
|
||||
@@ -197,53 +197,74 @@ Content-Type: application/x-www-form-urlencoded
|
||||
| `text` | ja | Aufgabentitel |
|
||||
| `description` | nein | Optionale Beschreibung |
|
||||
|
||||
**Response-Struktur (zu verifizieren):**
|
||||
**Response-Struktur (verifiziert):**
|
||||
```
|
||||
a00.r.r.metaId → metaId der neu erstellten Task
|
||||
a00.r.r → vollständiges Task-Objekt der neu erstellten Task
|
||||
.metaId → eindeutige Task-ID (z.B. "task/23431854_726362809")
|
||||
.taskListId → Listen-ID
|
||||
.text → Titel
|
||||
.complete → "false" (immer, direkt nach Erstellung)
|
||||
```
|
||||
|
||||
### `taskupdate2` – Task aktualisieren
|
||||
POST https://api.familywall.com/api/taskupdate2
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
**Body-Parameter (aus API-Pattern abgeleitet, zu verifizieren):**
|
||||
**Body-Parameter (verifiziert):**
|
||||
|
||||
| Parameter | Pflicht | Wert |
|
||||
|---|---|---|
|
||||
| `metaId` | ja | Task-ID aus `get_tasks` |
|
||||
| `text` | nein | Neuer Titel (mindestens `text` oder `description` erforderlich) |
|
||||
| `description` | nein | Neue Beschreibung |
|
||||
| `taskListId` | unklar | Evtl. erforderlich – zu verifizieren |
|
||||
|
||||
**Response-Struktur:** kein spezifischer Rückgabewert erwartet (Erfolg = kein `ex`/`un`-Key)
|
||||
Hinweis: `taskListId` ist **nicht** erforderlich (verifiziert – Update ohne `taskListId` funktioniert).
|
||||
|
||||
**Response-Struktur:** kein spezifischer Rückgabewert – Erfolg = kein `ex`/`un`-Key auf Top-Level.
|
||||
|
||||
### `taskmark` – Task als erledigt/offen markieren
|
||||
POST https://api.familywall.com/api/taskmark
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
**Body-Parameter (aus API-Pattern abgeleitet, zu verifizieren):**
|
||||
**Body-Parameter (verifiziert):**
|
||||
|
||||
| Parameter | Pflicht | Wert |
|
||||
|---|---|---|
|
||||
| `metaId` | ja | Task-ID aus `get_tasks` |
|
||||
| `taskId` | ja | Task-ID aus `get_tasks` (**WICHTIG: `taskId`, nicht `metaId`!**) |
|
||||
| `complete` | ja | `"true"` oder `"false"` (String, nicht Boolean!) |
|
||||
|
||||
**Response-Struktur:** kein spezifischer Rückgabewert erwartet (Erfolg = kein `ex`/`un`-Key)
|
||||
**Achtung:** Der Endpoint heißt intern `taskId`, nicht `metaId`.
|
||||
Falsche Parameter (`metaId`, `id`, `taskMetaId`) werden serverseitig ignoriert –
|
||||
die API antwortet dann mit einem Fehler in `a00.un.un` (nicht Top-Level!),
|
||||
der vom Standard-Error-Check im fw_client übersehen wird.
|
||||
|
||||
### `metadelete` – Objekt löschen (Task)
|
||||
**Response-Struktur (verifiziert):**
|
||||
```
|
||||
a00.r.r → vollständiges Task-Objekt mit aktuellem Stand (inkl. lastAction: "MARK_COMPLETED")
|
||||
```
|
||||
|
||||
### `metadelete` – Objekt löschen
|
||||
POST https://api.familywall.com/api/metadelete
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
**Body-Parameter (aus API-Pattern abgeleitet, zu verifizieren):**
|
||||
**Body-Parameter (verifiziert):**
|
||||
|
||||
| Parameter | Pflicht | Wert |
|
||||
|---|---|---|
|
||||
| `metaId` | ja | Task-ID aus `get_tasks` |
|
||||
| `id` | ja | Task-ID aus `get_tasks` (**WICHTIG: `id`, nicht `metaId`!**) |
|
||||
|
||||
Hinweis: `metadelete` ist ein generischer Lösch-Endpoint. Er löscht jedes Objekt
|
||||
mit der angegebenen `metaId` – nicht nur Tasks. Entsprechend vorsichtig verwenden.
|
||||
Hinweis: `metadelete` ist ein generischer Lösch-Endpoint für beliebige Objekte (Tasks, etc.).
|
||||
Entsprechend vorsichtig verwenden.
|
||||
|
||||
**Response-Struktur:** kein spezifischer Rückgabewert erwartet (Erfolg = kein `ex`/`un`-Key)
|
||||
**Response-Struktur (verifiziert):**
|
||||
```
|
||||
a00.r.r → "true" (String)
|
||||
```
|
||||
|
||||
**Fehlerverhalten:** Bei falschem Parameter-Namen (`metaId`, `taskId` etc.) antwortet die API
|
||||
mit `{"a00": {"un": {"un": {"message": "missing value in: id"}}}}` auf Top-Level ohne `un`-Key
|
||||
→ wird vom fw_client fälschlich als Erfolg interpretiert. Daher ist der korrekte Parameter-Name
|
||||
kritisch.
|
||||
|
||||
## Noch zu verifizieren
|
||||
|
||||
@@ -255,7 +276,7 @@ mit der angegebenen `metaId` – nicht nur Tasks. Entsprechend vorsichtig verwen
|
||||
- Kreis-Zuordnung in `accgetallfamily`-Response → noch offen
|
||||
- ~~Ob `partnerScope` / `withStateBean` benötigt werden~~ → nein (verifiziert)
|
||||
- Session-Lebensdauer (irrelevant da kein Caching)
|
||||
- `taskcreate2`: genaue Response-Struktur (metaId-Pfad), ob weitere Pflichtfelder existieren
|
||||
- `taskupdate2`: ob `taskListId` Pflichtfeld ist; Response-Struktur
|
||||
- `taskmark`: Response-Struktur
|
||||
- `metadelete`: Response-Struktur, welche Objekt-Typen unterstützt werden
|
||||
- ~~`taskcreate2`: Response-Struktur~~ → `a00.r.r` = vollständiges Task-Objekt (verifiziert)
|
||||
- ~~`taskupdate2`: ob `taskListId` Pflichtfeld ist~~ → **nein**, nicht erforderlich (verifiziert)
|
||||
- ~~`taskmark`: korrekter Parameter-Name~~ → **`taskId`** (nicht `metaId`!) (verifiziert)
|
||||
- ~~`metadelete`: korrekter Parameter-Name + Response-Struktur~~ → **`id`**, Response `"true"` (verifiziert)
|
||||
Reference in New Issue
Block a user