Corrected data parsing issues discovered during testing:
Teams Endpoint:
- Fixed get_all_teams to handle list response (not dict with "data" key)
- Corrected team name parsing to avoid duplication
- Properly extract city from full team name using common_name
- Fixed division and conference extraction from nested dict structures
Stats Endpoints:
- Fixed game log parsing to handle list response (not dict with "gameLog" key)
- Applied fix to both skater and goalie stats methods
Testing Results:
- Successfully retrieves all 32 NHL teams with correct names
- Team lookup by abbreviation working correctly
- Division and conference filtering operational
- Player roster retrieval functional (28 players)
- Player stats aggregation working (verified with Sammy Blais)
All adapter methods now correctly transform NHL API responses to domain entities.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added complete implementation of NHL API data adapters:
Player Adapter:
- get_player_by_id: Retrieves player info from career stats
- get_players_by_team: Fetches full team roster (forwards, defensemen, goalies)
- get_skater_stats: Aggregates current season skater statistics from game logs
- get_goalie_stats: Aggregates current season goalie statistics from game logs
- Data transformation utilities for roster and player data
Team Adapter:
- get_all_teams: Retrieves all NHL teams with division/conference info
- get_team_by_id: Looks up team by ID or abbreviation
- get_teams_by_division: Filters teams by division
- get_teams_by_conference: Filters teams by conference
- Data transformation for team entities
Technical Details:
- Corrected package name from nhl-api-py to nhlpy in requirements
- Implemented proper error handling with logging
- Dynamic season calculation based on current date
- Stats aggregation from game log data for accurate totals
- Proper type transformations between API responses and domain entities
Note: Player search functionality marked as not implemented due to API limitations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented CLEAN architecture with clear separation of concerns:
- Domain layer with entities (Player, Team, Stats, FantasyTeam) and repository interfaces
- Application layer with use case implementations
- Infrastructure layer with NHL API and Yahoo Fantasy API adapters
- Presentation layer with FastAPI configuration and dependency injection
Key features:
- Swappable data source adapters (NHL API, Yahoo Fantasy API)
- Repository pattern for data access abstraction
- Dependency injection for loose coupling
- FastAPI framework with async support
- PostgreSQL database configuration
- Environment-based configuration management
Technology stack: Python 3.11+, FastAPI, PostgreSQL, nhl-api-py, yfpy
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>