module Shipstation

Constants

API_BASE
VERSION

Attributes

password[W]
username[W]

Public Class Methods

datetime_format(datetime) click to toggle source
# File lib/shipstation.rb, line 92
def datetime_format datetime
  datetime.strftime("%Y-%m-%d %T")
end
password() click to toggle source
# File lib/shipstation.rb, line 52
def password
  defined? @password and @password or raise(
    ConfigurationError, "Shipstation password not configured"
  )
end
request(method, resource, params = {}) click to toggle source
# File lib/shipstation.rb, line 60
def request method, resource, params = {}
  ss_username = params[:username] || Shipstation.username
  ss_password = params[:password] || Shipstation.password

  params.except!(:username, :password)

  defined? method or raise(
    ArgumentError, "Request method has not been specified"
  )
  defined? resource or raise(
    ArgumentError, "Request resource has not been specified"
  )
  if method == :get
    headers = {:accept => :json, content_type: :json}.merge({params: params})
    payload = nil
  else
    headers = {:accept => :json, content_type: :json}
    payload = params
  end
  RestClient::Request.new({
                            method: method,
                            url: API_BASE + resource,
                            user: ss_username,
                            password: ss_password,
                            payload: payload ? payload.to_json : nil,
                            headers: headers
                          }).execute do |response, request, result|
    str_response = response.to_str
    str_response.blank? ? '' : JSON.parse(str_response)
  end
end
username() click to toggle source
# File lib/shipstation.rb, line 44
def username
  defined? @username and @username or raise(
    ConfigurationError, "Shipstation username not configured"
  )
end