Add PATCH /users/{userId} route with Kysely database integration #53
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.
Overview
Implements the PATCH /users/{userId} endpoint for updating user information in the Users table, addressing issue requirements for partial updates with database integration.
Changes Made
1. Users Lambda Handler
Created a new Lambda handler at
apps/backend/lambdas/users/using the lambda-cli scaffolding tool. This provides:/health2. Database Integration with Kysely
database.tswith type-safe database schema definitions3. Database Schema Updates
Extended the existing
usertable with two new columns:name(VARCHAR, nullable) - stores user's display nameisAdmin(INTEGER, default 0) - stores admin status (0 = false, 1 = true)Migration SQL is documented in
apps/backend/lambdas/users/migration.sqlfor reproducibility.4. PATCH /users/{userId} Implementation
Implemented comprehensive partial update logic:
Features:
Response Example:
{ "id": 1, "email": "user@example.com", "name": "John Doe", "isAdmin": true }5. Comprehensive Testing
Added 11 Jest test cases covering all scenarios:
All tests passing: ✅ 11/11
6. Documentation
API Documentation
Endpoint
PATCH /users/{userId}Request
Responses
Testing
Manual testing verified with local dev server and automated tests confirm all acceptance criteria:
Technical Details
Files Changed
apps/backend/lambdas/users/directory with complete Lambda handlerdb.sqlitewith schema changesOriginal prompt
Fixes #51
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.