class Picturelife::Api

Public Class Methods

call(uri, args = nil) click to toggle source
# File lib/picturelife/api.rb, line 8
def call(uri, args = nil)
  needs_token!

  api_get(build_uri(uri, args))
end

Private Class Methods

api_get(uri) click to toggle source
# File lib/picturelife/api.rb, line 28
def api_get(uri)
  uri      = URI(URI.encode(uri))
  response = Net::HTTP.get(uri)
  response = parse_response(response)
  raise ApiError.new(response["status"], response["error"], response) if (response["status"] != 20000 && response["status"] != 200)
  response
end
build_parameters(args = nil) click to toggle source
# File lib/picturelife/api.rb, line 20
def build_parameters(args = nil)
  args = {} if args.nil?

  args.merge!(access_token: Picturelife.access_token)

  return ['?', URI.encode_www_form(args)].join
end
build_uri(uri, args = nil) click to toggle source
# File lib/picturelife/api.rb, line 16
def build_uri(uri, args = nil)
  [API_ENDPOINT, uri, build_parameters(args)].join
end
parse_response(string) click to toggle source
# File lib/picturelife/api.rb, line 36
def parse_response(string)
  error_response = {
    'status' => -1,
    'error'  => string.to_s
  }

  JSON.parse(response) rescue error_response
end