class Wordpress::Client

Attributes

access_token[RW]

Public Class Methods

new() click to toggle source
# File lib/wordpress/client.rb, line 16
def initialize
  @conn = Faraday.new do |faraday|
    faraday.use Faraday::Response::Logger, logger
    faraday.request :multipart
    faraday.request :url_encoded
    #faraday.response :gzip
    faraday.adapter Faraday.default_adapter
  end
end

Public Instance Methods

call(request, options = {}) click to toggle source
# File lib/wordpress/client.rb, line 26
def call(request, options = {})
  debug "Request: #{request.inspect}"

  response = @conn.send(request.method) do |req|

    case req.method
      when :delete, :get
        req.url(request.url, request.params)
      when :put, :post
        req.path = request.url
        req.body = request.body unless request.body.empty?
    end


    if options[:bearer_token_request] && !bearer_auth_header.nil?
      req.headers['Authorization'] = bearer_auth_header
    end
    #req.headers['Accept-Encoding'] = 'gzip,deflate'
    req.options[:timeout] = 10
    req.options[:open_timeout] = 5
  end

  begin
    json = MultiJson.load(response.body)
    if json.nil? || json == ''
      raise Wordpress::ResponseError
    end
  rescue MultiJson::LoadError => e
    raise Wordpress::ResponseError, {'error' => e, 'message' => "Can not parse the response: #{response.body.inspect}"}
  end

  debug "Response: #{json}"

  json
end

Private Instance Methods

bearer_auth_header() click to toggle source
# File lib/wordpress/client.rb, line 64
def bearer_auth_header
  access_token.nil? ? nil : "Bearer #{access_token}"
end