Class: DonorsChooseApi::Project

Inherits:
ApiBaseModel show all
Includes:
DonorsCountFetcher
Defined in:
lib/donors_choose/project.rb

Constant Summary collapse

DEFAULT_KEY =
"DONORSCHOOSE"
DONORS_URL_REGEX =
/http[s]?:\/\/www.donorschoose.org\/project\/[a-zA-Z-]+\/\d+\//i

Class Method Summary collapse

Methods included from DonorsCountFetcher

#donors_to_date, #make_connection

Methods inherited from ApiBaseModel

#attributes, field, field_keys, fields, #initialize, #update_from_json

Constructor Details

This class inherits a constructor from DonorsChooseApi::ApiBaseModel

Class Method Details

.clientObject



33
34
35
# File 'lib/donors_choose/project.rb', line 33

def self.client
  DonorsChooseApi::Client.new
end

.find_by_id(donors_choose_id, api_key = DEFAULT_KEY) ⇒ Object



50
51
52
53
# File 'lib/donors_choose/project.rb', line 50

def self.find_by_id(donors_choose_id, api_key=DEFAULT_KEY)
  response = parse(client.get_id(donors_choose_id, api_key))
  new(response['proposals'].first)
end

.find_by_url(link_url, api_key = DEFAULT_KEY) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/donors_choose/project.rb', line 41

def self.find_by_url(link_url, api_key=DEFAULT_KEY)
  if link_url =~ DONORS_URL_REGEX
    response = parse(client.data_for(link_url, api_key))
    new(response['proposals'].first)
  else
    "Invalid Donors Choose Url"
  end
end

.parse(link_url) ⇒ Object



37
38
39
# File 'lib/donors_choose/project.rb', line 37

def self.parse(link_url)
  JSON.parse(link_url)
end