Skip to content

Return updated column on PUT /boards/:id/columns/:id#2851

Open
robzolkos wants to merge 2 commits intobasecamp:mainfrom
robzolkos:column-update-returns-body
Open

Return updated column on PUT /boards/:id/columns/:id#2851
robzolkos wants to merge 2 commits intobasecamp:mainfrom
robzolkos:column-update-returns-body

Conversation

@robzolkos
Copy link
Copy Markdown
Collaborator

@robzolkos robzolkos commented Apr 17, 2026

Summary

The JSON response for PUT /:account_slug/boards/:board_id/columns/:column_id was 204 No Content, forcing clients to follow up with a GET to see their own update. 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.

Rendering the show template on the JSON path makes the update return the same payload as GET /: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.rbformat.json { head :no_content }format.json { render :show }
  • test/controllers/boards/columns_controller_test.rb — "update as JSON" test now asserts the returned body
  • docs/api/sections/columns.md — replaced "Returns 204 No Content" with the 200 response shape

Mobile App check

  • Neither mobile app has native client code calling PUT /boards/:id/columns/:id
  • Neither mobile app has code paths that depend on this endpoint returning 204 No Content
  • Neither mobile app is affected by this response change to 200 OK with the updated column

…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.
Copilot AI review requested due to automatic review settings April 17, 2026 13:05
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 OK response 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.
@robzolkos robzolkos requested a review from flavorjones April 17, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants