class NeptunesPride::Client

Class responsible for API calls

Attributes

password[R]
username[R]

Public Class Methods

new(username: nil, password: nil, cookie: nil) click to toggle source
# File lib/neptunes_pride/client.rb, line 11
def initialize(username: nil, password: nil, cookie: nil)
  @cookie = cookie
  @password = password
  @username = username
end

Public Instance Methods

authenticate!() click to toggle source
# File lib/neptunes_pride/client.rb, line 17
def authenticate! # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
  url = URI('https://np.ironhelmet.com/arequest/login')

  https = Net::HTTP.new(url.host, url.port)
  https.use_ssl = true

  request = Net::HTTP::Post.new(url)
  request['Content-Type'] = 'application/x-www-form-urlencoded'
  request.body = URI.encode_www_form(alias: username,
                                     password: password,
                                     type: 'login')

  response = https.request(request)
  body = JSON.parse(response.read_body)

  raise NeptunesPride::ApiError, body[1] if body[0] == 'meta:error'

  @cookie = response['Set-Cookie']
end
full_universe_report(game_number) click to toggle source
# File lib/neptunes_pride/client.rb, line 37
def full_universe_report(game_number) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
  raise NeptunesPride::NotAuthenticated unless authenticated?

  url = URI('https://np.ironhelmet.com/trequest/order')

  https = Net::HTTP.new(url.host, url.port)
  https.use_ssl = true

  request = Net::HTTP::Post.new(url)
  request['Content-Type'] = 'application/x-www-form-urlencoded'
  request['Cookie'] = cookie
  request.body = URI.encode_www_form(game_number: game_number.to_s,
                                     order: 'full_universe_report',
                                     type: 'order')

  response = https.request(request)
  @cookie = response['Set-Cookie']
  JSON.parse(response.read_body)
end

Private Instance Methods

authenticated?() click to toggle source
# File lib/neptunes_pride/client.rb, line 61
def authenticated?
  !cookie.nil?
end