Class: AngelApiGem::AngelApi::Api

Inherits:
Object
  • Object
show all
Defined in:
app/models/angel_api_gem/angel_api.rb

Instance Method Summary collapse

Constructor Details

#initializeApi

Returns a new instance of Api.



4
5
6
7
8
# File 'app/models/angel_api_gem/angel_api.rb', line 4

def initialize
  @uri = URI.parse("https://api.angel.co/1/")
  @http = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl = true
end

Instance Method Details

#api_request(api_path) ⇒ Object



10
11
12
13
# File 'app/models/angel_api_gem/angel_api.rb', line 10

def api_request(api_path)
  response = @http.request(Net::HTTP::Get.new(@uri.request_uri + api_path))
  response.code == '200' ? JSON.parse(response.body) : nil
end

#search(query, type = "Startup") ⇒ Object



15
16
17
18
19
20
21
# File 'app/models/angel_api_gem/angel_api.rb', line 15

def search(query,type="Startup")
  # type can be User, Startup, MarketTag or LocationTag
  types = %w[User Startup MarketTag LocationTag]
  raise "type not one of User, Startup, MarketTag or LocationTag" unless types.include?(type.to_s.capitalize)
  path = URI.encode("search?query=#{query}&type=#{type.to_s.capitalize}")
  result = api_request(path)
end

#startup_detail(id) ⇒ Object



23
24
25
26
# File 'app/models/angel_api_gem/angel_api.rb', line 23

def startup_detail(id)
  path = URI.encode("startups/#{id}")
  api_request(path.strip)
end

#startup_detail_from_url(url) ⇒ Object



28
29
30
31
# File 'app/models/angel_api_gem/angel_api.rb', line 28

def startup_detail_from_url(url)
  path = URI.encode("startups/search.json?domain=#{url}")
  detail_list = api_request(path.strip)
end

#startup_roles(id, page = 1) ⇒ Object



33
34
35
36
# File 'app/models/angel_api_gem/angel_api.rb', line 33

def startup_roles(id, page=1)
  path = URI.encode("startups/#{id}/roles?page=#{page}")
  detail_list = api_request(path.strip)
end