Class: OpenBD
- Inherits:
-
Object
- Object
- OpenBD
- Defined in:
- lib/openbd/client.rb
Constant Summary collapse
- API_BASE_URL =
'http://api.openbd.jp/v1/'.freeze
Class Method Summary collapse
- .bulk_get(isbns) ⇒ Object
- .coverage ⇒ Object
- .create_body(response) ⇒ Object
- .get(isbns) ⇒ Object
- .normalize_isbns(isbns) ⇒ Object
- .prepare_url(method, isbns = nil) ⇒ Object
- .schema ⇒ Object
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 |
.coverage ⇒ Object
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 |
.schema ⇒ Object
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 |