class Sticapi::SticapiClient

Attributes

access_token[RW]
client[RW]
expiry[RW]
host[RW]
password[RW]
port[RW]
uid[RW]
urn[RW]
user[RW]

Public Class Methods

new() click to toggle source
# File lib/sticapi_client.rb, line 30
def initialize
  configs = YAML.load_file("#{Rails.root}/config/sticapi.yml")[Rails.env]
  # configs = YAML.load_file("/home/ricardo/dev/sticapi_client/lib/generators/sticapi_client/templates/sticapi.yml")[Rails.env]
  @host = configs['host']
  @port = configs['port'] || 80
  @user = configs['user']
  @urn = configs['urn']
  @password = configs['password']
  @access_token = ''
  @client = ''
  @uid = ''
  @expiry = ''
  get_token
end

Public Instance Methods

get_token() click to toggle source
# File lib/sticapi_client.rb, line 49
def get_token
  if @access_token.blank?
    uri = URI.parse("#{self.uri}/auth/sign_in")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Post.new(uri.request_uri)
    request['email'] = @user
    request['password'] = @password
    response = http.request(request)
    update_token(response)
  end
end
sticapi_request(route, options = {}) click to toggle source
# File lib/sticapi_client.rb, line 68
def sticapi_request(route, options = {})
  kind = options[:kind] || 'post'
  uri = URI.parse("#{self.uri}#{route}")
  http = Net::HTTP.new(uri.host, uri.port)
  request = nil
  request = Net::HTTP::Post.new(uri.request_uri) if kind == 'post'
  request = Net::HTTP::Get.new(uri.request_uri) if kind == 'get'
  request['Content-Type'] = 'application/json'
  request['access-token'] = access_token
  request['client'] = client
  request['uid'] = uid
  request.body = options.except(:kind).to_json
  response = http.request(request)
  update_token(response)
  JSON.parse(response.body)
end
update_token(response) click to toggle source
# File lib/sticapi_client.rb, line 61
def update_token(response)
  @access_token = response['access-token']
  @client = response['client']
  @uid = response['uid']
  @expiry = response['expiry']
end
uri() click to toggle source
# File lib/sticapi_client.rb, line 45
def uri
  "http://#{@host}:#{@port}#{'/' if @urn}#{@urn}"
end