Drop the unused project description field entirely
It never got a UI home on the frontend -- removed from ProjectView a few sessions back and never restored anywhere -- so it was a fully live field (validated, stored, returned by the API, covered by tests) with no consumer. - Migration 011: ALTER TABLE projects DROP COLUMN description. - ProjectRepository: description dropped from ProjectRow, SELECT, create() and update() -- update() is now just a rename (string, not a $fields array; there was never more than one editable field once this left). - ProjectController: store()/update() no longer accept or validate it; update() drops the "provide at least one of title, description" branch, since title is unconditionally the only field now. - Frontend Project type, root README's API docs and curl example. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -284,15 +284,14 @@ owner (the creator); another user's project — or a missing one — always resp
|
||||
| `GET` | `/api/projects` | the caller's projects, sorted A→Z by title |
|
||||
| `POST` | `/api/projects` | create a project |
|
||||
| `GET` | `/api/projects/{id}` | one project |
|
||||
| `PATCH` | `/api/projects/{id}` | update `title` and/or `description` |
|
||||
| `PATCH` | `/api/projects/{id}` | rename the project (`title`) |
|
||||
| `DELETE` | `/api/projects/{id}` | delete the project and its cards (`204`) |
|
||||
|
||||
`GET /api/projects` is always ordered alphabetically (case-insensitive) by
|
||||
title; there is no other sort option. A user may own at most **100 projects** —
|
||||
creating one beyond that responds `409`.
|
||||
|
||||
Create/update body: `title` (required on create, 1–255 chars), `description`
|
||||
(optional, ≤ 2000 chars, defaults to `""`). `PATCH` needs at least one field.
|
||||
Create/update body: `title` (required, 1–255 chars).
|
||||
|
||||
Project representation:
|
||||
|
||||
@@ -301,7 +300,6 @@ Project representation:
|
||||
"project": {
|
||||
"id": 1,
|
||||
"title": "Website relaunch",
|
||||
"description": "Q3",
|
||||
"owner_id": 1,
|
||||
"card_count": 3,
|
||||
"completed_count": 1,
|
||||
@@ -452,7 +450,7 @@ curl -s $BASE/api/me -H "Authorization: Bearer $TOKEN"
|
||||
|
||||
PROJECT=$(curl -s -X POST $BASE/api/projects \
|
||||
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
|
||||
-d '{"title":"Website relaunch","description":"Q3"}' \
|
||||
-d '{"title":"Website relaunch"}' \
|
||||
| tr -d ' \n' | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
||||
|
||||
curl -s $BASE/api/projects/$PROJECT/statuses -H "Authorization: Bearer $TOKEN"
|
||||
|
||||
Reference in New Issue
Block a user