summaryrefslogtreecommitdiff
path: root/lib/opentox.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/opentox.rb')
-rw-r--r--lib/opentox.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/opentox.rb b/lib/opentox.rb
index 73798ef..16646c1 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -1,18 +1,19 @@
require 'sinatra/base'
-# Error handling
-# Errors are logged as error and formated according to acccept-header
-# Non OpenTox::Errors (defined in error.rb) are handled as internal error (500), stacktrace is logged
-# IMPT: set sinatra settings :show_exceptions + :raise_errors to false in config.ru, otherwise Rack::Showexceptions takes over
module OpenTox
+ # Base class for OpenTox services
+ # Errors are formated according to acccept-header
+ # Non OpenTox::Errors (defined in error.rb) are handled as internal error (500), stacktrace is logged
class Service < Sinatra::Base
+
helpers Sinatra::UrlForHelper
+ # use OpenTox error handling
set :raise_errors, false
set :show_exceptions, false
+
error do
- #TODO: add actor to error report
- #actor = "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}#{request.env['REQUEST_URI']}"
error = request.env['sinatra.error']
+ error.report.actor = "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}#{request.env['REQUEST_URI']}"
case request.env['HTTP_ACCEPT']
when 'application/rdf+xml'
content_type 'application/rdf+xml'
@@ -21,7 +22,7 @@ module OpenTox
when "text/n3"
content_type "text/n3"
else
- content_type "text/n3"
+ content_type "text/turtle"
end
if error.respond_to? :report
code = error.report.http_code
@@ -33,7 +34,7 @@ module OpenTox
when "text/n3"
body = error.report.to_ntriples
else
- body = error.report.to_ntriples
+ body = error.report.to_turtle
end
else
content_type "text/plain"