Create kanban columns (#6) #13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/create-column"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #6.
This was the only one of the nine with no known write endpoint. Found it by probing a throwaway project.
The endpoint
POST column, with the same{"add": [...], "update": [], "delete": []}envelope every other batch endpoint uses, returning the standardid2etag/id2error.The near-misses are recorded in DESIGN.md §14 so nobody has to repeat the search:
POST batch/columnPOST column/project/{id}POST columnwith a bare objectPOST columnwith a JSON arrayPOST columnwith the batch envelopeThe bare-object case is the nasty one — it looks like success and silently does nothing.
Also worth knowing: columns do not require the project to be in kanban view. A project with
viewMode: nullaccepts them fine, so there's no view-mode dance before creating one.Duplicate names — the guard is load-bearing
The issue asked for duplicates to be "rejected or return the existing one". I verified why it matters: TickTick does create the duplicate. A raw POST of a second column named
Doingproduced:That splits one logical section in two — the exact failure the acceptance list anticipated. So
create_columnis idempotent by name, compared case-insensitively, and returns the existing column instead. A create-if-missing reconcile can call it every run.This is the same shape as
_require_group/_require_columnin #11: the v2 API validates nothing, so our guard is the only one there is.Acceptance
Testing
186 passed, plus 8 live tests. The live test asserts one column still exists after threecreate_column("Doing"/"DOING")calls.🤖 Generated with Claude Code
https://claude.ai/code/session_012VU4wBhFAAosZLQcWqvHsf