class Seriline::Client

Attributes

api_key[R]
session[R]
username[R]

Public Class Methods

client_connection(client) { |client| ... } click to toggle source
# File lib/seriline/client.rb, line 21
def self.client_connection(client)
  client.login
  yield(client) if client.session.active?
ensure
  client.logout
end
new(username = Seriline.config.username, api_key = Seriline.config.api_key) click to toggle source
# File lib/seriline/client.rb, line 10
def initialize(username = Seriline.config.username, api_key = Seriline.config.api_key)
  @username = username
  @api_key = api_key
  @session = Seriline::Session.new
end
with_connection(username = Seriline.config.username, api_key = Seriline.config.api_key, &block) click to toggle source
# File lib/seriline/client.rb, line 16
def self.with_connection(username = Seriline.config.username, api_key = Seriline.config.api_key, &block)
  client = Seriline::Client.new(username, api_key)
  self.client_connection(client, &block)
end

Public Instance Methods

get_available_config_products() click to toggle source
# File lib/seriline/client.rb, line 44
def get_available_config_products
  ConfigProduct.get_available(@session)
end
get_order_info(order_id) click to toggle source
# File lib/seriline/client.rb, line 52
def get_order_info(order_id)
  Order.get_order_info(session, order_id)
end
login() click to toggle source
# File lib/seriline/client.rb, line 28
def login
  return if @session.active?
  Seriline::Request.get(
    Seriline::Endpoint.login_path,
    { username: @username, apiKey: @api_key }
  ).tap(&store_session_info)
end
logout() click to toggle source
# File lib/seriline/client.rb, line 36
def logout
  return unless @session.active?
  Seriline::Request.get(
    Seriline::Endpoint.logout_path,
    { sessionKey: @session.session_key }
  ).tap(&destroy_session_info)
end
order_config_product(product_id, data) click to toggle source
# File lib/seriline/client.rb, line 48
def order_config_product(product_id, data)
  ConfigProduct.order(@session, product_id, data)
end

Private Instance Methods

destroy_session_info() click to toggle source
# File lib/seriline/client.rb, line 64
def destroy_session_info
  -> (_response) { @session = Seriline::Session.new }
end
store_session_info() click to toggle source
# File lib/seriline/client.rb, line 58
def store_session_info
  lambda { |response|
    @session = Seriline::Session.new Seriline::LoginResponse.new(response)
  }
end