class Cinii::Client::Base

Public Class Methods

new(app_id: nil) click to toggle source
# File lib/cinii/client/base.rb, line 8
def initialize(app_id: nil)
  @app_id = app_id
end

Public Instance Methods

has_required_params?(params, required_keys) click to toggle source
# File lib/cinii/client/base.rb, line 16
def has_required_params?(params, required_keys)
  !!required_keys.find { |p| params[p] }
end
send_get(path, params = nil) click to toggle source
# File lib/cinii/client/base.rb, line 12
def send_get(path, params = nil)
  send_request(:get, path, params)
end

Private Instance Methods

app_id() click to toggle source
# File lib/cinii/client/base.rb, line 65
def app_id
  @app_id || ENV['CINII_APP_ID']
end
cinii_connection() click to toggle source
# File lib/cinii/client/base.rb, line 29
def cinii_connection
  @cinii_connection ||= Faraday.new(faraday_options) do |con|
    con.request  :json
    con.response :json
    con.response :logger do | logger |
      logger.filter(/(appid=)(\w+)/,'\1[REMOVED]')
    end
    con.adapter  Faraday.default_adapter
  end
end
default_params() click to toggle source
# File lib/cinii/client/base.rb, line 40
def default_params
  {
    appid:  app_id,
    format: 'json'
  }
end
faraday_headers() click to toggle source
# File lib/cinii/client/base.rb, line 58
def faraday_headers
  {
    'Accept'       => 'application/json',
    'User-Agent'   => "Cinii Ruby Gem #{Cinii::VERSION}"
  }
end
faraday_options() click to toggle source
# File lib/cinii/client/base.rb, line 47
def faraday_options
  {
    url: faraday_url,
    headers: faraday_headers
  }
end
faraday_url() click to toggle source
# File lib/cinii/client/base.rb, line 54
def faraday_url
  'https://ci.nii.ac.jp'
end
send_request(method, path, params = nil) click to toggle source
# File lib/cinii/client/base.rb, line 22
def send_request(method, path, params = nil)
  params = params ? default_params.merge(params) : default_params
  response = cinii_connection.send(method, path, params)
  raise RemoteURLNotAvailableError, "#{path} is not available." unless response.status == 200
  response
end