Sha256: a2c0ac45d706d56e831625af2af22a0e6bb1676086089af0a970cc03ff50b80a
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
require 'faraday' require 'faraday_middleware' require 'erb' module Pokemon module RestClient def self.get(endpoint, params=nil) if params.nil? query = endpoint else query = "#{endpoint}?#{params_to_query(params)}" end response = client.get(query) case response.status when 200 JSON.parse(response.body) when 429 raise 'You have hit your rate limit.' when 404 raise ArgumentError, 'Resource not found' when 403 raise 'You are not authorized to access this endpoint. Please make sure you have a valid API Key. Go to https://dev.pokemontcg.io for more info.' else raise 'Something went wrong...please try again later.' end end protected def self.client headers = {'Content-Type' => 'application/json'} headers['X-Api-Key'] = Pokemon.configuration.api_key unless Pokemon.configuration.api_key.nil? @client = Faraday.new( url: "#{API_URL}/v2", headers: headers ) end def self.params_to_query(params) params.map {|p, v| "#{p}=#{ERB::Util.url_encode(v.to_s)}"}.join('&') end end end
Version data entries
4 entries across 4 versions & 1 rubygems