require "game_of_thrones_api/version"
require "httparty"

module GameOfThronesApi
  include HTTParty
  format :json

  BASE_ENDPOINT = "http://anapioficeandfire.com/api"

  def self.get_books
    get("#{BASE_ENDPOINT}/books").parsed_response
  end

  def self.find_book(name)
    name = name_query(filter)
    get("#{BASE_ENDPOINT}/books#{name}").parsed_response
  end

  def self.get_characters
    get("#{BASE_ENDPOINT}/characters").parsed_response
  end

  def self.find_character(name)
    name = name_query(filter)
    get("#{BASE_ENDPOINT}/characters#{name}").parsed_response
  end

  def self.get_houses
    filter = name_query(filter) if filter
    get("#{BASE_ENDPOINT}/houses#{filter}").parsed_response
  end

  def self.find_house(name)
    filter = name_query(filter) if filter
    get("#{BASE_ENDPOINT}/houses#{filter}").parsed_response
  end

  module_function

  def name_query(filter)
    "/?name=#{uri_escape(filter)}"
  end

  def uri_escape(term)
    term.gsub(' ', '%20')
  end
end