Method: PrintReleaf::API#request

Defined in:
lib/printreleaf/api.rb

#request(verb, uri, params = {}) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/printreleaf/api.rb', line 70

def request(verb, uri, params={})
  perform_request do
    uri = Util.join_uri(endpoint, uri)
    url = "#{protocol}://#{uri}"

    request_params = {
      method: verb,
      url: url,
      headers: {
        accept: :json,
        :Authorization => "Bearer #{api_key}",
        :user_agent => user_agent
      }
    }

    if verb == :get || verb == :delete
      request_params[:headers][:params] = params unless params.empty?
    else
      request_params[:payload] = params.to_json
      request_params[:headers][:content_type] = :json
    end

    unless logger.nil?
      logger.info "[PrintReleaf] #{verb.upcase} #{uri}"
    end

    response = RestClient::Request.execute(request_params)

    JSON.parse(response.body)
  end
end