✨ Add Movie Service missing endpoints and models - #259
Merged
Conversation
Add worktree directory to .gitignore to prevent accidentally committing worktree contents when working on multiple features in parallel. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implement Plan 1: Movie Service Additions - adds 9 missing endpoints to achieve 100% API coverage for Movie Service. **New Models:** - AccountStates - User rating, favorite, and watchlist state - AlternativeTitle - Alternative titles by country - Translation<T> - Generic translation model - MovieTranslationData - Movie-specific translation data - Change models - Change tracking for sync/caching - AnyCodable - Type-erased codable for dynamic JSON values **New Methods:** - accountStates(forMovie:session:) - Get user interaction state - addRating(_:toMovie:session:) - Add movie rating - deleteRating(forMovie:session:) - Delete movie rating - alternativeTitles(forMovie:country:language:) - Get alternative titles - translations(forMovie:) - Get movie translations - lists(forMovie:page:language:) - Get lists containing movie - changes(forMovie:startDate:endDate:page:) - Get movie change history - latest() - Get latest movie added to TMDb - changes(startDate:endDate:page:) - Get changed movie IDs **Tests:** - Added comprehensive model tests with JSON fixtures - All 1530 unit tests pass - Uses #require() instead of force unwrapping **Documentation:** - Updated MovieService.md with new method groups - Added all new models to TMDb.md - Documentation builds without warnings **API Coverage:** - Before: 15/24 endpoints (63%) - After: 24/24 endpoints (100%) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #259 +/- ##
==========================================
- Coverage 99.29% 98.32% -0.98%
==========================================
Files 260 274 +14
Lines 4123 4417 +294
==========================================
+ Hits 4094 4343 +249
- Misses 29 74 +45 ☔ View full report in Codecov by Sentry. |
- Fix opening brace spacing in Translation.swift (lines 14 and 84) - Disable type_body_length warning for TMDbMovieService (302 lines with 24+ methods) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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
Implement Plan 1: Movie Service Additions - adds 9 missing endpoints to achieve 100% API coverage for Movie Service.
Changes
New Models:
AccountStates- User rating, favorite, and watchlist stateAlternativeTitle- Alternative titles by countryTranslation<T>- Generic translation model with movie-specific dataChangemodels - Change tracking for sync/cachingAnyCodable- Type-erased codable for dynamic JSON valuesNew Service Methods (9 endpoints):
accountStates(forMovie:session:)- Get user interaction stateaddRating(_:toMovie:session:)- Add movie rating (0.5-10.0, increments of 0.5)deleteRating(forMovie:session:)- Delete movie ratingalternativeTitles(forMovie:country:language:)- Get alternative titlestranslations(forMovie:)- Get movie translationslists(forMovie:page:language:)- Get lists containing moviechanges(forMovie:startDate:endDate:page:)- Get movie change historylatest()- Get latest movie added to TMDbchanges(startDate:endDate:page:)- Get changed movie IDsRequest Classes:
APIRequestQueryItem.Namewithcountry,startDate,endDateTests:
#require()instead of force unwrappingDocumentation:
MovieService.mdwith 3 new topic groupsTMDb.mdBenefits
API Coverage Improvement
Testing
🤖 Generated with Claude Code