lib/avvo_api/lawyer.rb in avvo_api-0.1.1 vs lib/avvo_api/lawyer.rb in avvo_api-0.2.0
- old
+ new
@@ -1,20 +1,61 @@
# Represents a lawyer on Avvo. Attributes include:
-#
+#
# * id: The id of this lawyer
# * firstname: the first name of this lawyer
# * middlename: the middle name of this lawyer
# * lastname: the last name of this lawyer
# * suffix: the suffix of the lawyer's name
# * email_address
# * website_url
#
class AvvoApi::Lawyer < AvvoApi::Base
-
+
has_many :addresses
has_many :reviews
has_many :schools
has_many :languages
has_many :specialties
has_one :headshot
- include AvvoApi::ProfessionalMethods
+
+ # Search avvo for a list of the top 10 professionals matching the
+ # passed-in parameters. Accepts the following parameters:
+ #
+ # [q] The search query
+ # [loc] The location to search in
+ #
+ # These parameters match the search boxes on the Avvo website.
+ #
+ # This method pre-dates the REST API, and thus returns a hash of
+ # data rather than API objects. Hopefully, we'll eventually come
+ # up with something better. To see an actual response, look at
+ # http://api.avvo.com/docs/get/lawyers/search.html
+ def self.search(params)
+ response = self.get(:search, params)
+
+ if response && response['num_results']
+ response
+ else
+ raise ActiveResource::ResourceNotFound.new(response)
+ end
+ end
+
+ # Attempts to find a professional on Avvo that matches the
+ # passed-in params. Currently accepts the following params:
+ #
+ # [name] The full name of the lawyer you are trying to find
+ # [phone] The phone number of the lawyer, in the format XXX-XXX-XXXX
+ # [fax] The fax number of the lawyer, in the format XXX-XXX-XXXX
+ # [address] The full address of the lawyer
+ # [zip_code] The zip code of the lawyer
+ # [email_address] The e-mail address of the lawyer
+ def self.resolve(params)
+ response = self.get(:resolve, :params => params)
+ if response && response[collection_name]
+ response[collection_name].map do |params|
+ new(params.merge({"annotation" => response['annotation']}))
+ end
+ else
+ raise ActiveResource::ResourceNotFound.new(response)
+ end
+ end
end