Module: Bloopi::HTTPService

Defined in:
lib/bloopi/http_service.rb,
lib/bloopi/http_service/request.rb,
lib/bloopi/http_service/response.rb

Defined Under Namespace

Classes: Request, Response

Constant Summary collapse

DEFAULT_MIDDLEWARE =

Bloopi’s default middleware stack. and use whichever adapter has been configured for this application.

Proc.new do |builder|
  builder.request :url_encoded
  builder.adapter Faraday.default_adapter
end

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.faraday_middlewareObject

A customized stack of Faraday middleware that will be used to make each request.



9
10
11
# File 'lib/bloopi/http_service.rb', line 9

def faraday_middleware
  @faraday_middleware
end

.http_optionsObject

Returns the value of attribute http_options.



10
11
12
# File 'lib/bloopi/http_service.rb', line 10

def http_options
  @http_options
end

Class Method Details

.make_request(request) ⇒ Bloopi::HTTPService::Response

Note:

You’ll rarely need to call this method directly.

Makes a request directly to Bloopi.

Parameters:

  • request

    a Bloopi::HTTPService::Request object

Returns:

Raises:

  • an appropriate connection error if unable to make the request to Bloopi



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/bloopi/http_service.rb', line 31

def self.make_request(request)
  # set up our Faraday connection
  conn = Faraday.new(request.server, faraday_options(request.options), &(faraday_middleware || DEFAULT_MIDDLEWARE))
  if request.verb == "post" && request.json?
    # JSON requires a bit more handling
    # remember, all non-GET requests are turned into POSTs, so this covers everything but GETs
    response = conn.post do |req|
      req.path = request.path
      req.headers["Content-Type"] = "application/json"
      req.headers['Bearer'] = Bloopi.config.access_token if Bloopi.config.access_token
      req.body = request.post_args.to_json
      req
    end
  else
    # response = conn.send(request.verb, request.path, request.post_args)
    response = conn.get do |req|
        req.path = request.path
        req.headers['Bearer'] = Bloopi.config.access_token if Bloopi.config.access_token
    end
  end

  # Log URL information
  # Bloopi::Utils.debug "#{request.verb.upcase}: #{request.path} params: #{request.raw_args.inspect}"
  Bloopi::HTTPService::Response.new(response.status.to_i, response.body, response.headers)
end