diff options
Diffstat (limited to 'application.rb')
-rw-r--r-- | application.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/application.rb b/application.rb new file mode 100644 index 0000000..58ba871 --- /dev/null +++ b/application.rb @@ -0,0 +1,48 @@ +#Author: mr +#Description: small service to generate and destroy security token. + +require 'opentox-server' + +module OpenTox + class Application < Service + + before do + @accept = request.env['HTTP_ACCEPT'] + response['Content-Type'] = @accept + puts SERVICE + end + + post "/#{SERVICE}/authenticate/?" do + mime_types = ["text/plain"] + bad_request_error "Mime type #{@accept} not supported here. Please request data as #{mime_types.join(', ')}." unless mime_types.include? @accept + bad_request_error "Please send formdata username." unless params[:username] + bad_request_error "Please send formdata password." unless params[:password] + case @accept + when "text/plain" + if OpenTox::Authorization.authenticate(params[:username], params[:password]) + return OpenTox::RestClientWrapper.subjectid + else + return nil + end + else + bad_request_error "'#{@accept}' is not a supported content type." + end + end + + post "/#{SERVICE}/logout/?" do + mime_types = ["text/plain"] + bad_request_error "Mime type #{@accept} not supported here. Please request data as #{mime_types.join(', ')}." unless mime_types.include? @accept + bad_request_error "Please send formdata subjectid." unless params[:subjectid] + case @accept + when "text/plain" + if OpenTox::Authorization.logout(params[:subjectid]) + return "Successfully logged out. \n" + else + return "Logout failed.\n" + end + else + bad_request_error "'#{@accept}' is not a supported content type." + end + end + end +end
\ No newline at end of file |