Merge branch 'worktree-agent-a02f88e8490625846'
# Conflicts: # GerbilManagerWebAPI/ApplicationContext.cs # GerbilManagerWebAPI/Program.cs # gerbil-manager-web/e2e/mock-data.ts # gerbil-manager-web/src/App.tsx # gerbil-manager-web/src/components/AppShell.tsx # gerbil-manager-web/src/strings/de.ts
This commit is contained in:
@@ -706,6 +706,42 @@ export async function installMockApi(page: Page): Promise<MockDb> {
|
||||
return json(route, 405)
|
||||
}
|
||||
|
||||
// RÜCKNAHMEN: zurückgenommene Tiere (CRUD /returns, GET optional ?gerbilId=).
|
||||
// Eigene Route (kein Gridify-Paging — die API liefert ein flaches Array).
|
||||
const ret = path.match(/^\/returns(?:\/([^/]+))?$/)
|
||||
if (ret) {
|
||||
const retId = ret[1] ? decodeURIComponent(ret[1]) : null
|
||||
if (!retId) {
|
||||
if (method === 'GET') {
|
||||
const gid = url.searchParams.get('gerbilId')
|
||||
const rows = gid ? db.returns.filter((r) => r.gerbilId === gid) : db.returns
|
||||
return json(route, 200, [...rows].reverse())
|
||||
}
|
||||
if (method === 'POST') {
|
||||
const body = request.postDataJSON() as Row
|
||||
if (!body.gerbilId && !body.gerbilName) {
|
||||
return json(route, 400, 'Es muss ein Tier angegeben werden.')
|
||||
}
|
||||
const created = { id: newId('return'), ...body, createdAt: new Date().toISOString() }
|
||||
db.returns.push(created)
|
||||
return json(route, 201, created)
|
||||
}
|
||||
return json(route, 405)
|
||||
}
|
||||
const idx = db.returns.findIndex((r) => r.id === retId)
|
||||
if (method === 'PUT') {
|
||||
if (idx < 0) return json(route, 404, { title: 'Not Found' })
|
||||
Object.assign(db.returns[idx], request.postDataJSON() as Row)
|
||||
return json(route, 200, db.returns[idx])
|
||||
}
|
||||
if (method === 'DELETE') {
|
||||
if (idx < 0) return json(route, 404, { title: 'Not Found' })
|
||||
db.returns.splice(idx, 1)
|
||||
return json(route, 204)
|
||||
}
|
||||
return json(route, 405)
|
||||
}
|
||||
|
||||
// Generische Kollektionen: /<resource> und /<resource>/<id>
|
||||
m = path.match(/^\/([a-z-]+)(?:\/([^/]+))?$/)
|
||||
const col = m ? collections[m[1]] : undefined
|
||||
|
||||
Reference in New Issue
Block a user