Class: RedfishTools::Servlet

Inherits:
WEBrick::HTTPServlet::AbstractServlet
  • Object
show all
Defined in:
lib/redfish_tools/servlet.rb

Constant Summary collapse

BAD_HEADERS =
Set.new(["connection", "content-length", "keep-alive"])
DEFAULT_HEADERS =
{
  "content-type" => "application/json"
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(server, datastore, login_path) ⇒ Servlet

Returns a new instance of Servlet.



13
14
15
16
17
# File 'lib/redfish_tools/servlet.rb', line 13

def initialize(server, datastore, )
  super(server)
  @datastore = datastore
  @login_path = .chomp("/")
end

Instance Method Details

#do_DELETE(_request, response) ⇒ Object



46
47
48
# File 'lib/redfish_tools/servlet.rb', line 46

def do_DELETE(_request, response)
  response.status = 501
end

#do_GET(request, response) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/redfish_tools/servlet.rb', line 19

def do_GET(request, response)
  return response.status = 401 unless authorized?(request)

  resource = @datastore.get(request.path)
  response.body = resource.body
  set_headers(response, resource.headers)
  response.status = response.body ? 200 : 404
end

#do_PATCH(_request, response) ⇒ Object



42
43
44
# File 'lib/redfish_tools/servlet.rb', line 42

def do_PATCH(_request, response)
  response.status = 501
end

#do_POST(request, response) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/redfish_tools/servlet.rb', line 28

def do_POST(request, response)
  return response.status = 401 unless authorized?(request)

  if (request.path)
    (request, response)
  else
    response.status = 501
  end
end

#do_PUT(_request, response) ⇒ Object



38
39
40
# File 'lib/redfish_tools/servlet.rb', line 38

def do_PUT(_request, response)
  response.status = 501
end