class Brickset::Api
Public Class Methods
new()
click to toggle source
# File lib/brickset/api.rb, line 3 def initialize @client = Savon.client(wsdl: Brickset.configuration.wsdl_url, convert_request_keys_to: :none) @api_key = Brickset.configuration.api_key end
Public Instance Methods
check_key()
click to toggle source
# File lib/brickset/api.rb, line 69 def check_key response = call_api(:check_key) response.body.dig(:check_key_response, :check_key_result) == 'OK' end
collection_totals(user_hash)
click to toggle source
# File lib/brickset/api.rb, line 84 def collection_totals(user_hash) response = call_api(:get_collection_totals, options: {userHash: user_hash}) Array.wrap(response.body.dig(:get_collection_totals_response, :get_collection_totals_result)) end
instructions(id)
click to toggle source
# File lib/brickset/api.rb, line 79 def instructions(id) response = call_api(:get_instructions, options: {setID: id}) Array.wrap(response.body.dig(:get_instructions_response, :get_instructions_result, :instructions)) end
login(username, password)
click to toggle source
# File lib/brickset/api.rb, line 74 def login(username, password) response = call_api(:login, options: {username: username, password: password}) response.body.dig(:login_response, :login_result) end
minifig_collection(user_hash, query: '', owned: '', wanted: '')
click to toggle source
# File lib/brickset/api.rb, line 89 def minifig_collection(user_hash, query: '', owned: '', wanted: '') response = call_api(:get_minifig_collection, options: {userHash: user_hash, query: query, owned: owned, wanted: wanted}) Array.wrap(response.body.dig(:get_minifig_collection_response, :get_minifig_collection_result, :minifig_collection)) end
operations()
click to toggle source
# File lib/brickset/api.rb, line 8 def operations @client.operations end
recently_updated(minutes_ago)
click to toggle source
# File lib/brickset/api.rb, line 27 def recently_updated(minutes_ago) response = call_api(:get_recently_updated_sets, options: {minutesAgo: minutes_ago}) Array.wrap(response.body.dig(:get_recently_updated_sets_response, :get_recently_updated_sets_result, :sets)) end
set(id, user_hash: '')
click to toggle source
# File lib/brickset/api.rb, line 64 def set(id, user_hash: '') response = call_api(:get_set, options: {userHash: user_hash, SetID: id}) response.body.dig(:get_set_response, :get_set_result, :sets) end
sets(user_hash: '', query: '', theme: '', subtheme: '', set_number: '', year: '', owned: '', wanted: '', order_by: '', page_size: '', page_number: '', user_name: '')
click to toggle source
# File lib/brickset/api.rb, line 32 def sets(user_hash: '', query: '', theme: '', subtheme: '', set_number: '', year: '', owned: '', wanted: '', order_by: '', page_size: '', page_number: '', user_name: '') # although the docs say the parameters are optional they must all be there options = { userHash: user_hash, query: query, theme: theme, subtheme: subtheme, setNumber: set_number, year: year, owned: owned, wanted: wanted, orderBy: order_by, pageSize: page_size, pageNumber: page_number, userName: user_name } response = call_api(:get_sets, options: options) Array.wrap(response.body.dig(:get_sets_response, :get_sets_result, :sets)) end
subthemes(theme)
click to toggle source
# File lib/brickset/api.rb, line 17 def subthemes(theme) response = call_api(:get_subthemes, options: {theme: theme}) Array.wrap(response.body.dig(:get_subthemes_response, :get_subthemes_result, :subthemes)) end
subthemes_for_user(user_hash, theme, owned: '', wanted: '')
click to toggle source
# File lib/brickset/api.rb, line 99 def subthemes_for_user(user_hash, theme, owned: '', wanted: '') response = call_api(:get_subthemes_for_user, options: {userHash: user_hash, theme: theme, owned: owned, wanted: wanted}) Array.wrap(response.body.dig(:get_subthemes_for_user_response, :get_subthemes_for_user_result, :subthemes)) end
themes()
click to toggle source
# File lib/brickset/api.rb, line 12 def themes response = call_api(:get_themes) Array.wrap(response.body.dig(:get_themes_response, :get_themes_result, :themes)) end
themes_for_user(user_hash, owned: '', wanted: '')
click to toggle source
# File lib/brickset/api.rb, line 94 def themes_for_user(user_hash, owned: '', wanted: '') response = call_api(:get_themes_for_user, options: {userHash: user_hash, owned: owned, wanted: wanted}) Array.wrap(response.body.dig(:get_themes_for_user_response, :get_themes_for_user_result, :themes)) end
years(theme)
click to toggle source
# File lib/brickset/api.rb, line 22 def years(theme) response = call_api(:get_years, options: {theme: theme}) Array.wrap(response.body.dig(:get_years_response, :get_years_result, :years)) end
years_for_user(user_hash, theme, owned: '', wanted: '')
click to toggle source
# File lib/brickset/api.rb, line 104 def years_for_user(user_hash, theme, owned: '', wanted: '') response = call_api(:get_years_for_user, options: {userHash: user_hash, theme: theme, owned: owned, wanted: wanted}) Array.wrap(response.body.dig(:get_years_for_user_response, :get_years_for_user_result, :years)) end
Private Instance Methods
call_api(method, options: {})
click to toggle source
# File lib/brickset/api.rb, line 111 def call_api(method, options: {}) @client.call(method, message: options.merge(apiKey: @api_key)) end