class NASA::Client

Constants

VERSION

Attributes

application_id[RW]
base_uri[RW]

Public Class Methods

new(_base_uri, application_id) click to toggle source
# File lib/nasa/client.rb, line 9
def initialize(_base_uri, application_id)
  @base_uri = 'https://api.nasa.gov/'
  @application_id = application_id
end

Public Instance Methods

apod(date = Time.now.strftime('%Y-%m-%d'), concept_tags = true, hd = false) click to toggle source
# File lib/nasa/client.rb, line 14
def apod(date = Time.now.strftime('%Y-%m-%d'),
         concept_tags = true,
         hd = false)
  request
    .planetary('apod')
    .get(:params => { :api_key => @application_id.dup,
                      :concept_tags => concept_tags.to_s,
                      :date => date,
                      :hd => hd })
    .to_h
end
neo_feed(start_date = Time.now.strftime('%Y-%m-%d'), end_date = (Time.now + 604800).strftime('%Y-%m-%d')) click to toggle source

end_date is 1 week in seconds

# File lib/nasa/client.rb, line 27
def neo_feed(start_date = Time.now.strftime('%Y-%m-%d'),
             end_date = (Time.now + 604800).strftime('%Y-%m-%d'))
  request
    .neo
    .rest
    .v1('feed')
    .get(:params => { :api_key => @application_id.dup,
                      :start_date => start_date,
                      :end_date => end_date })
    .to_h
end
neo_lookup(asteroid_id) click to toggle source
# File lib/nasa/client.rb, line 39
def neo_lookup(asteroid_id)
  request
    .neo
    .rest
    .v1
    .neo(asteroid_id.to_s)
    .get(:params => { :api_key => @application_id.dup })
    .to_h
end

Private Instance Methods

request() click to toggle source
# File lib/nasa/client.rb, line 51
def request
  headers = { 'Content-Type' => 'application/json' }
  Blanket.wrap(@base_uri.dup,
               :headers => headers)
end