summaryrefslogtreecommitdiff
path: root/application.rb
blob: 58ba8715eed51b72c6c7bed51b8fdda389981862 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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