-
Notifications
You must be signed in to change notification settings - Fork 1
feat(api): overhaul tasks & users API with bulk ops, nested tasks, and improved schemas #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
…ith additional attributes added support for nested subtasks
feat(task): add bulk create/update status endpoint with TaskBulkRequest/Response fix(task): ensure eager/noload options to avoid async lazy loading issues
…te/update fix(task): disable lazy loading (noload/selectinload) to prevent MissingGreenlet errors fix(task): refresh updated_at and subtasks after commit for safe serialization
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
- rename taskout to taskout tree - add taskout shallow model to output task trees without subtasks - add new examples
- use response model return shallow data without subtasks when include tree is set to false and otherwise use tree based response model - remove redudant documentation - drop response model exclude args to skip subtask related field
…c_client fixture (before create_all). Or remove the isinstance(...) guard in the connect listener and call .execute(...) directly. (Optional) use ?cache=shared + uri=True with StaticPool.
…t user is deleted
reselect tasks with noload and add a BFS eager loader so create/update/list flows don’t trigger lazy IO during serialization tighten task/user relationships and SQLite pragmas to enforce cascade deletes and use selectin loading consistently expose user helpers for fetching by id and deleting accounts
reselect tasks with noload and add BFS eager loader to keep API responses from lazy-loading subtasks set ondelete=CASCADE, single_parent, and selectin relationships so user/task deletions behave predictably streamline SQLite pragmas and add CRUD helpers for fetching/deleting users
accept raw enum strings and skip None fields while normalizing payloads add BFS helper to pre-load full subtask trees and avoid lazy IO on API responses reselect rows with noload after create/update/status changes to prevent unintended refreshes
…icher feature list, dev server instructions, and local data note
…nt endpoint (auth, user self-service, full tasks suite), switched all URLs to {{base_url}}, and added shared variables for base URL, API key, token, plus template IDs for users/tasks so you can toggle between Render and localhost easily. Import the refreshed collection into Postman and set up two environments (prod/local) with the right base_url, api_key, and runtime values before testing the calls.
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.
📝 PR Description
This PR delivers a major overhaul of the API, focusing on data models, validation, and route structure to support richer task management and frontend integration.
✨ Key Changes
User API
UserSQLAlchemy model and relationshipsUserCreate,UserOut,UserUpdate)Task API
TaskSQLAlchemy model with self-referentialsubtaskspriority,category,tags,due_date,estimated_hours, etc.TaskCreate,TaskUpdate,TaskOut, bulk request/response models)/tasks/bulk) for create + status updatesMissingGreenlet) by usingselectinload/noloadand refreshingupdated_atGeneral Improvements
🚀 Benefits