lib/petfinder/client.rb in petfinder-0.0.1 vs lib/petfinder/client.rb in petfinder-0.1.0

- old
+ new

@@ -13,76 +13,72 @@ end # Valid animal types: barnyard, bird, cat, dog, horse, pig, reptile, smallfurry def breeds(animal_type) response = perform_get("/breed.list", :query => {:animal => animal_type}) - return_as_array(response.breeds.breed) + Breeds.parse(response, :single => true).breeds end def pet(id) response = perform_get("/pet.get", :query => {:id => id}) - response.pet + Pet.parse(response, :single => true) end # Options available: animal, breed, size, sex, location, shelterid def random_pet(options = {}) response = perform_get("/pet.getRandom", :query => {:output => 'full'}) - response.pet + Pet.parse(response, :single => true) end # Options available: breed, size, sex, age, offset, count def find_pets(animal_type, location, options = {}) query = options.merge(:animal => animal_type, :location => location) response = perform_get("/pet.find", :query => query) - return_as_array(response.pets.pet) + Pet.parse(response) end def shelter(id) response = perform_get("/shelter.get", :query => {:id => id}) - response.shelter + Shelter.parse(response, :single => true) end # Options available: name, offset, count def find_shelters(location, options = {}) query = options.merge(:location => location) response = perform_get("/shelter.find", :query => query) - return_as_array(response.shelters.shelter) + Shelter.parse(response) end # Options available: offset, count def find_shelters_by_breed(animal_type, breed, options = {}) query = options.merge(:animal => animal_type, :breed => breed) response = perform_get("/shelter.listByBreed", :query => query) - return_as_array(response.shelters.shelter) + Shelter.parse(response) end # Options available: status, offset, count def shelter_pets(id, options = {}) query = options.merge(:id => id) response = perform_get("/shelter.getPets", :query => query) - return_as_array(response.pets.pet) + Pet.parse(response) end def token response = perform_get("/auth.getToken", :query => {:sig => digest_key_and_secret}) - response.auth.token + Auth.parse(response, :single => true).token end private - def return_as_array(object) - object.class == Array ? object : [object] - end - def digest_key_and_secret raise "API secret is required" if @api_secret.blank? Digest::MD5.hexdigest(@api_secret + "key=#{@api_key}") end def perform_get(uri, options = {}) response = self.class.get(uri, options) raise_errors(response) - mash = Hashie::Mash.new(response['petfinder']) + response.body end def raise_errors(response) if response.code.to_i == 200 status = response['petfinder']['header']['status'] \ No newline at end of file