class ZQuickblox::Request

Constants

API_ENDPOINT

Attributes

connection[R]
errors[RW]
headers[RW]
method[RW]
params[RW]
response[RW]
response_body[RW]
uri[R]

Public Class Methods

new() click to toggle source
# File lib/zquickblox/request.rb, line 9
def initialize
  @connection = Faraday.new(url: Request::API_ENDPOINT) do |faraday|
    faraday.request  :url_encoded
    faraday.response :logger
    faraday.adapter  Faraday.default_adapter
  end

  @headers = {}
end

Public Instance Methods

after_request() click to toggle source
# File lib/zquickblox/request.rb, line 26
def after_request
end
before_request() click to toggle source
# File lib/zquickblox/request.rb, line 23
def before_request
end
execute() click to toggle source
# File lib/zquickblox/request.rb, line 29
def execute
  before_request

  get    if @method == :get
  post   if @method == :post
  put    if @method == :put
  delete if @method == :delete

  if @response.status != 404 && @response.body.length > 1
    @response_body = JSON.parse(@response.body)
  else
    @response_body = {}
  end

  @errors = @response_body["errors"] if @response.status != 404
  if @errors
    if @errors.kind_of?(Hash)
      raise ZQuickblox::Error.new(messages: @errors["base"]) if !@errors["base"].nil?
      message = ""
      @errors.each do |key, value|
        message += "; " + key
        message += " " + value.join(", ")
      end
      raise ZQuickblox::Error.new(messages: message)
    end
  end

  after_request
end
header(key, value) click to toggle source
# File lib/zquickblox/request.rb, line 19
def header(key, value)
  headers[key] = value
end

Private Instance Methods

delete() click to toggle source
# File lib/zquickblox/request.rb, line 85
def delete
  @response = @connection.delete do |request|
    handle_request(request)
  end
end
get() click to toggle source
# File lib/zquickblox/request.rb, line 67
def get
  @response = @connection.get do |request|
    handle_request(request)
  end
end
handle_request(request) click to toggle source
# File lib/zquickblox/request.rb, line 61
def handle_request(request)
  request.url        @uri
  request.headers =  @headers
  request.body    =  @params
end
post() click to toggle source
# File lib/zquickblox/request.rb, line 73
def post
  @response = @connection.post do |request|
    handle_request(request)
  end
end
put() click to toggle source
# File lib/zquickblox/request.rb, line 79
def put
  @response = @connection.put do |request|
    handle_request(request)
  end
end