Class: OpenBD

Inherits:
Object
  • Object
show all
Defined in:
lib/openbd/client.rb

Constant Summary collapse

API_BASE_URL =
'http://api.openbd.jp/v1/'.freeze

Class Method Summary collapse

Class Method Details

.bulk_get(isbns) ⇒ Object



14
15
16
17
18
# File 'lib/openbd/client.rb', line 14

def bulk_get(isbns)
  request_url = prepare_url('get')
  response = Net::HTTP.post_form(URI::parse(request_url), isbn: normalize_isbns(isbns))
  create_body(response).select { |item| item != nil }
end

.coverageObject



20
21
22
23
24
# File 'lib/openbd/client.rb', line 20

def coverage
  request_url = prepare_url('coverage')
  response = Net::HTTP.get_response(URI::parse(request_url))
  create_body(response)
end

.create_body(response) ⇒ Object



32
33
34
# File 'lib/openbd/client.rb', line 32

def create_body(response)
  JSON.parse response.body
end

.get(isbns) ⇒ Object



8
9
10
11
12
# File 'lib/openbd/client.rb', line 8

def get(isbns)
  request_url = prepare_url('get', isbns)
  response = Net::HTTP.get_response(URI::parse(request_url))
  create_body(response).select { |item| item != nil }
end

.normalize_isbns(isbns) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/openbd/client.rb', line 48

def normalize_isbns(isbns)
  params = ""
  if isbns.kind_of? String
    params << isbns
  elsif isbns.kind_of? Array
    isbns.each do |isbn|
      params << "#{isbn}, "
    end
    params.strip!.gsub!(/,$/,'')
  end

  params
end

.prepare_url(method, isbns = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/openbd/client.rb', line 36

def prepare_url(method, isbns = nil)
  if isbns.kind_of? String
    params = normalize_isbns(isbns)
    "#{API_BASE_URL}#{method}?isbn=#{params}"
  elsif isbns.kind_of? Array
    params = normalize_isbns(isbns)
    "#{API_BASE_URL}#{method}?isbn=#{params}"
  else
    "#{API_BASE_URL}#{method}"
  end
end

.schemaObject



26
27
28
29
30
# File 'lib/openbd/client.rb', line 26

def schema
  request_url = prepare_url('schema')
  response = Net::HTTP.get_response(URI::parse(request_url))
  create_body(response)
end