Skip to content

rickpeyton/nintendo_eshop

Repository files navigation

Nintendo eShop

Gem Version CircleCI Maintainability Test Coverage Dependabot Status

Description

When I want to check the price of a game on the Nintendo eShop I want to search Nintendo's API by external key so that I am confident I am getting the correct price.

Installation

Add this line to your application's Gemfile:

gem 'nintendo_eshop'

And then execute:

$ bundle

Or install it yourself as:

$ gem install nintendo_eshop

Usage

Use the provided base_url, api_key and app_id. These are provided as configuration in case the values change. The README will be updated to reflect the new values so that you do not have to update the library.

NintendoEshop.base_url = "https://u3b6gr4ua3-dsn.algolia.net"
NintendoEshop.api_key = "9a20c93440cf63cf1a7008d75f7438bf"
NintendoEshop.app_id = "U3B6GR4UA3"

Retrieve a game by ID (nsuid)

game = NintendoEshop::Game.retrieve_by(id: "70010000001130")

game.art # "https://www.nintendo.com/content/dam/noa/en_US/games/switch/s/su..."
game.categories # [ "Action", "Platformer" ]
game.current_price # 59.99
game.description # "Use amazing new abilities\u2014like the power to capture..."
game.esrb # "Everyone 10+"
game.id # "70010000001130"
game.msrp # 59.99
game.object_id # "3ce3fb54-5f95-3a24-9101-7faa694c4b6f"
game.platform # "Nintendo Switch"
game.release_date # #<Date: 2017-10-26 ...>
game.release_date_pretty # "Oct 26, 2017"
game.sale_percent # nil
game.sale_price # nil
game.title # "Super Mario Odyssey"
game.url # "https://www.nintendo.com/games/detail/super-mario-odyssey-switch">

Or a game on sale

game = NintendoEshop::Game.retrieve_by(id: "70010000001539")

game.art # "https://www.nintendo.com/content/dam/.../Switch_SonicForces_box.png"
game.categories # [ "Action" ]
game.current_price # 9.99
game.description # "From the team that brought you Sonic Colors and Generati..."
game.esrb # "Everyone 10+"
game.id # "70010000001539"
game.msrp # 19.99
game.object_id # "26322c64-9268-3a24-822e-5e10f9e5cfc9"
game.platform # "Nintendo Switch"
game.release_date # #<Date: 2017-11-07 ...>
game.release_date_pretty # "Nov 07, 2017"
game.sale_percent # 50%
game.sale_price # 9.99
game.title # "Sonic Forces"
game.url # "https://www.nintendo.com/games/detail/sonic-forces-switch">

Or by object_id

game = NintendoEshop::Game.retrieve_by(object_id: "26851cb3-4f10-333a-8d7c-f9cae4a9bc03")

Search by Title

games = NintendoEshop::GamesList.by_title("Super Mario Odyssey")

games.first.title # "Super Mario Odyssey: Starter"

Errors

Error handling is still a work in progress

game = NintendoEshop::Game.retrieve_by(id: "invalid id")

# => NintendoEshop::InvalidRequestError

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/rickpeyton/nintendo_eshop.

License

The gem is available as open source under the terms of the MIT License.

Releases

CircleCi is used to push releases to rubygems.org

To release

  • Edit the version.rb file
  • bundle
  • Commit that to your master branch
  • Create and push a git tag with the same name as your version

Example

git tag -m "Release 0.1.0" 0.1.0
git push origin 0.1.0