Class: Arisaid::Faraday::Request

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/arisaid/faraday/request.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/arisaid/faraday/request.rb', line 38

def call(env)
  show_request(env) if Arisaid.read_only? || Arisaid.debug?

  if requestable?(env)
    @app.call(env)
  else
    stub_out(env)
  end
end

#read?(env) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/arisaid/faraday/request.rb', line 29

def read?(env)
  unread_pattern = /\.(create|disable|enable|update|setActive|setPresence)\?/
  return env.method == :get && unread_pattern !~ env.url.to_s
end

#requestable?(env) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/arisaid/faraday/request.rb', line 34

def requestable?(env)
  !Arisaid.read_only? || read?(env)
end

#response_bodyObject



10
11
12
# File 'lib/arisaid/faraday/request.rb', line 10

def response_body
  Sawyer::Resource.new(Sawyer::Agent.new(Breacan.api_endpoint))
end

#response_objectObject



14
15
16
17
# File 'lib/arisaid/faraday/request.rb', line 14

def response_object
  Struct.new(
    :env, :method, :status, :path, :params, :headers, :body, :options)
end

#response_statusObject



6
7
8
# File 'lib/arisaid/faraday/request.rb', line 6

def response_status
  200
end

#show_request(env) ⇒ Object



19
20
21
22
# File 'lib/arisaid/faraday/request.rb', line 19

def show_request(env)
  unescaped_url = URI.unescape(env.url.to_s)
  puts "#{env.method}: #{Breacan::Error.new.send(:redact_url, unescaped_url)}#{' dryrun'.colorize(:yellow) unless requestable?(env)}"
end

#stub_out(env) ⇒ Object



24
25
26
27
# File 'lib/arisaid/faraday/request.rb', line 24

def stub_out(env)
  response_object.new(
    env, env.method, response_status, env.url, nil, {}, response_body)
end