API v1 Migration - Phase 3: Final release preperation and refactoring#75
Open
AhmedZaki99 wants to merge 12 commits intoolsh:masterfrom
Open
API v1 Migration - Phase 3: Final release preperation and refactoring#75AhmedZaki99 wants to merge 12 commits intoolsh:masterfrom
AhmedZaki99 wants to merge 12 commits intoolsh:masterfrom
Conversation
…and command argument entities design.
…plates, Ids, and Calendars endpoints.
…d merged REST endpoints.
…s, Ids, and ViewOptions endpoints.
… and implementing re-designed contracts.
Contributor
Author
|
@olsh README.md has not been updated yet either. I have split changes into several commits that should help you review relevant changes together. Hope this helps. |
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.
This PR is the final API-v1 migration pass for Todoist.Net and supersedes the original “docs-only” scope planned for Phase 3. (a part of the plan discussed in #70)
Summary
Phase 3 evolved into a full contract and architecture finalization pass to align the library with the current unified Todoist API v1 surface.
Compared to the original plan, this PR does significantly more than documentation updates:
TodoistClient+ REST behavior around the redesigned service model.Why this change expanded
While validating migration completeness, we found that the initial Phase 1/2 work still left structural gaps for:
This PR closes those gaps before release rather than shipping partial abstractions and revisiting them in follow-up breaking releases.
Scope of change
1) Structure and organization baseline (commit:
6fc69e6)ModelsandServicesinto domain folders (e.g.,Tasks,Projects,Activity,Commands,Common, ...).ReorderEntryusage alignment, etc.).IdsArgument) and cleaned project includes.2) Common model + sync/command redesign (commit:
5bbd02e)ThrowHelperfor centralized guard clauses.TodoistExceptioninto v1-oriented error metadata usage.Models/Sync,3) Domain model redesign for v1 request/response parity (commit:
d03ac70)4) New v1 domain models (commit:
1553de1)5) Client contract redesign foundation (commit:
cb3ad25)IAdvancedTodoistClient,ITodoistClient, andITodoistRestClientto support redesigned service contracts and endpoint usage patterns.CommandServiceBase,ServiceBase,ITransaction,Transaction) for the new model.6) Service layer migration to redesigned contracts (commit:
e1a6bd5)IBackupsService,IEmailsService,IUploadsService,ITemplatesService, etc.).LiveNotificationsservice grouping into dedicatedNotificationsservices.7) New service coverage for added v1 domains (commit:
4e04009)8) Client finalization pass (commit:
2bfec13)TodoistClientservice wiring and property surface for all redesigned/new services.TodoistRestClientupdates required by finalized contracts.Breaking changes (consumer impact)
This PR introduces additional breaking changes beyond Phase 1/2:
Public contract reshaping
IBackupService→IBackupsService,IUploadService→IUploadsService, etc.).Model type replacements and relocations
Sync/command abstraction changes
Expanded API surface in v11
Compatibility notes
Commit map
6fc69e6— reorganize models/services by domain5bbd02e— redesign common models, sync responses, commands, and exception/guard foundationsd03ac70— refactor domain models for v1 request/response/argument alignment1553de1— add new domain models (workspaces, workspace filters, view options, templates, IDs, calendars)cb3ad25— redesign client and command-service base contractse1a6bd5— refactor service layer to redesigned contracts/endpoints4e04009— add new services for added v1 domains2bfec13— finalizeTodoistClient/TodoistRestClientintegration and contractsNotes for reviewers