Add ESRB Rating Information#34
Conversation
- Adds new dataclasses for ESRBRatings and ESRB Rating Categories. - Enriches existing game data with ESRB rating and content descriptors, which allows for filtering based on them. - Adds a new `get_free_games_with_ratings` method to the API that fetches ESRB ratings for free games and includes it in the response. - Also adds utility functions and examples.
Updates the comment to reflect the default nature of the 'locale' and 'country' variables within GraphQL queries.
|
Hi, So for the background: I have been using this library in my project that notifies a Signal Group when games are marked free. Recently I had a Feature Request to add ESRB Rating info to the message which I think is valid however as I am using the get_free_games method, the path on the API that is currently being called there doesn't seem to support that. I think the easiest way to implement this while maintaining the existing patterns in this codebase would simply to be adding a supplementary _with_ratings method along with some helper methods to keep everything as DRY and single responsibility as possible. I was also thinking of adding some validators for all of the data we are parsing now but I wanted to keep the scope as limited as possible for this PR. Can plan for a subsequent change if this is approved. Please take a look and I am happy to discuss further. Thanks! |
|
Hey @SD4RK / @woctezuma , Would I be able to get some feedback here? |
|
Hello, sorry for the delay, was busy with some irl stuff. I think the feature itself is fine, but the amount of parsing and handling is a little bit too much in my opinion. Library was made with as less parsing and validation in mind as possible, to just leave users with pretty much raw API (as this API is not stable and is not meant to be used outside of the store app itself, and by any means and can be changed at any time, I don't see much reason in this). |
get_free_games_with_ratingsmethod to the API that fetches ESRB ratings for free games and includes it in the response.