Repository navigation
0.4.0
·
188 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
Closes out ISteamUser with GetPlayerBans and GetUserGroupList, and makes SteamApiException cover every HTTP failure. Contains breaking changes.
Added
- GetPlayerBansRequest (ISteamUser) with the PlayerBan DTO and EconomyBan enum — unknown ban values fall back to Unknown instead of throwing (#18).
- GetUserGroupListRequest (ISteamUser) with the UserGroup DTO (#19).
- InvalidApiKeyException for a missing (400) or rejected (403) API key.
- StatsUnavailableException, thrown by GetPlayerAchievementsRequest when Steam withholds achievements.
- SteamApiException::$response exposing the response behind an HTTP failure.
- JsonSerializable on SteamId, which now encodes to a bare string instead of an object (#25).
Changed
- BC break. SteamApiException declares its own constructor, and getCode() is now the HTTP status — or 0 when the failure was raised before a request went out.
- BC break. HTTP failures raise SDK exceptions instead of Saloon's RequestException subclasses, so catching SteamApiException covers every failure (#20).
- BC break. TooManySteamIdsException::forCount() takes a required string $endpoint.
- BC break. CommentPermission and CommunityVisibility are backed enums, by string and int respectively. Case names and fromApiValue() are unchanged; only UnitEnum type hints and instanceof checks need updating.
- GetPlayerAchievementsRequest, GetUserStatsForGameRequest and GetUserGroupListRequest no longer detect a private profile from the response body — Steam answers with an error status instead.
Fixed
- PlayerSummary can be passed to json_encode(), which previously returned false (#25).
- SteamId::tryFromInput() and SteamId::extractVanityName() parse profile and vanity URLs carrying a sub-path, query string or fragment.
- Rate limit counters are scoped to the API key instead of shared by every connector in the process (#30).
Details
- chore(deps-dev): update phpstan/phpstan requirement from >=2.2.0 <2.2.6 to ^2.2.6 by @dependabot[bot] in #22
- fix: parse Steam URLs with a trailing path, query or fragment by @fkrzski in #24
- fix: back CommentPermission and CommunityVisibility enums by @fkrzski in #26
- feat: implement JsonSerializable on SteamId by @fkrzski in #27
- feat: add GetUserGroupList endpoint by @fkrzski in #28
- feat: add GetPlayerBans endpoint by @fkrzski in #29
- fix: map HTTP failures to the SDK exception hierarchy by @fkrzski in #31
- fix: scope rate limit counter to the API key by @fkrzski in #32
Full Changelog: 0.3.0...0.4.0