Return updated column on PUT /boards/:id/columns/:id#2851
Open
robzolkos wants to merge 2 commits intobasecamp:mainfrom
Open
Return updated column on PUT /boards/:id/columns/:id#2851robzolkos wants to merge 2 commits intobasecamp:mainfrom
robzolkos wants to merge 2 commits intobasecamp:mainfrom
Conversation
…mns/:column_id The JSON response was `204 No Content`, forcing clients to follow up with a GET. The Smithy contract that the SDKs are generated from already declares `UpdateColumn` returns a Column, so the server was out of sync with the documented shape. Render `show` for the JSON format so PUT returns the same payload as GET. The Turbo Stream format is unchanged. Updated test asserts the returned body matches the updated state. Updated API docs to describe the 200 response shape.
Contributor
There was a problem hiding this comment.
Pull request overview
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
This PR brings the server behavior for updating board columns back in sync with the documented/contracted API shape by returning the updated Column JSON payload on successful PUT /:account_slug/boards/:board_id/columns/:column_id, instead of 204 No Content.
Changes:
- Update JSON response for column updates to
render :show(returns the updated column payload). - Expand controller test coverage to assert the JSON response body for the update endpoint.
- Update API documentation to describe the
200 OKresponse and payload shape.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| app/controllers/boards/columns_controller.rb | Changes JSON update response from 204 to rendering the existing show JSON shape. |
| test/controllers/boards/columns_controller_test.rb | Updates “update as JSON” test to assert 200 + returned id/name. |
| docs/api/sections/columns.md | Documents 200 OK with updated column payload for the PUT endpoint. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Mirrors the nested-params test in boards/columns_controller_test.rb — flat JSON PUTs now return the updated column as the body instead of 204 No Content.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The JSON response for
PUT /:account_slug/boards/:board_id/columns/:column_idwas204 No Content, forcing clients to follow up with aGETto see their own update. The Smithy contract that the SDKs are generated from already declaresUpdateColumnreturns a Column, so the server was out of sync with the documented shape.Rendering the
showtemplate on the JSON path makes the update return the same payload asGET /:account_slug/boards/:board_id/columns/:column_id. The Turbo Stream path is unchanged.Discovered during a fizzy-cli QA sweep. Same class of issue as #2848 (boards) and #2849 (card move).
Changes
app/controllers/boards/columns_controller.rb—format.json { head :no_content }→format.json { render :show }test/controllers/boards/columns_controller_test.rb— "update as JSON" test now asserts the returned bodydocs/api/sections/columns.md— replaced "Returns 204 No Content" with the 200 response shapeMobile App check
PUT /boards/:id/columns/:id204 No Content200 OKwith the updated column