Class: RedfishTools::Servlet
- Inherits:
-
WEBrick::HTTPServlet::AbstractServlet
- Object
- WEBrick::HTTPServlet::AbstractServlet
- RedfishTools::Servlet
- Extended by:
- Forwardable
- 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
- #do_DELETE(_request, response) ⇒ Object
- #do_GET(request, response) ⇒ Object
- #do_PATCH(_request, response) ⇒ Object
- #do_POST(request, response) ⇒ Object
- #do_PUT(_request, response) ⇒ Object
- #service(request, response) ⇒ Object
Instance Method Details
#do_DELETE(_request, response) ⇒ Object
59 60 61 |
# File 'lib/redfish_tools/servlet.rb', line 59 def do_DELETE(_request, response) response.status = 501 end |
#do_GET(request, response) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/redfish_tools/servlet.rb', line 29 def do_GET(request, response) item = datastore.get(request.path) response.status = 200 set_headers(response, item.headers) response.body = item.body.to_json end |
#do_PATCH(_request, response) ⇒ Object
55 56 57 |
# File 'lib/redfish_tools/servlet.rb', line 55 def do_PATCH(_request, response) response.status = 501 end |
#do_POST(request, response) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/redfish_tools/servlet.rb', line 36 def do_POST(request, response) item = datastore.get(request.path) return response.status = 405 unless item.body["Members"] data = JSON.parse(request.body) item_n = login_path?(request) ? login(item, data) : new_item(item, data) return response.status = 400 unless item_n.body response.status = 201 set_headers(response, item_n.headers) response.body = item_n.body.to_json rescue JSON::ParserError response.status = 400 end |
#do_PUT(_request, response) ⇒ Object
51 52 53 |
# File 'lib/redfish_tools/servlet.rb', line 51 def do_PUT(_request, response) response.status = 501 end |
#service(request, response) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/redfish_tools/servlet.rb', line 22 def service(request, response) return response.status = 401 unless (request) return response.status = 404 unless datastore.get(request.path).body super end |