Module: Particle::Connection

Included in:
Client
Defined in:
lib/particle/connection.rb

Overview

Network layer for API client

Constant Summary collapse

MIDDLEWARE =

Faraday middleware stack

Faraday::RackBuilder.new do |builder|
  builder.use Particle::Response::RaiseError
  # For file upload
  builder.request :multipart

  builder.request :json
  builder.use Particle::Response::ParseJsonSymbols, :content_type => /\bjson$/
  builder.adapter Faraday.default_adapter
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#last_responseFaraday::Response (readonly)

Response for last HTTP request

Returns:

  • (Faraday::Response)


82
83
84
# File 'lib/particle/connection.rb', line 82

def last_response
  @last_response
end

Instance Method Details

#connectionFaraday::Connection

HTTP connection for the Particle API

Returns:

  • (Faraday::Connection)


70
71
72
73
74
75
76
77
# File 'lib/particle/connection.rb', line 70

def connection
  @connection ||= Faraday.new(conn_opts) do |http|
    http.url_prefix = endpoint
    if @access_token
      http.authorization :Bearer, @access_token
    end
  end
end

#delete(url, options = {}) ⇒ Hash

Make a HTTP DELETE request

Parameters:

Returns:

  • (Hash)

    JSON response as a hash



63
64
65
# File 'lib/particle/connection.rb', line 63

def delete(url, options = {})
  request :delete, url, options
end

#get(url, options = {}) ⇒ Hash

Make a HTTP GET request

Parameters:

Returns:

  • (Hash)

    JSON response as a hash



27
28
29
# File 'lib/particle/connection.rb', line 27

def get(url, options = {})
  request :get, url, options
end

#patch(url, options = {}) ⇒ Hash

Make a HTTP PATCH request

Parameters:

Returns:

  • (Hash)

    JSON response as a hash



54
55
56
# File 'lib/particle/connection.rb', line 54

def patch(url, options = {})
  request :patch, url, options
end

#post(url, options = {}) ⇒ Hash

Make a HTTP POST request

Parameters:

Returns:

  • (Hash)

    JSON response as a hash



36
37
38
# File 'lib/particle/connection.rb', line 36

def post(url, options = {})
  request :post, url, options
end

#put(url, options = {}) ⇒ Hash

Make a HTTP PUT request

Parameters:

Returns:

  • (Hash)

    JSON response as a hash



45
46
47
# File 'lib/particle/connection.rb', line 45

def put(url, options = {})
  request :put, url, options
end