summaryrefslogtreecommitdiff
path: root/application.rb
diff options
context:
space:
mode:
Diffstat (limited to 'application.rb')
-rw-r--r--application.rb46
1 files changed, 20 insertions, 26 deletions
diff --git a/application.rb b/application.rb
index 3fbc9fb..7829fff 100644
--- a/application.rb
+++ b/application.rb
@@ -1,23 +1,24 @@
require 'rubygems'
require 'opentox-ruby-api-wrapper'
-require 'sinatra/respond_to'
-
-mime :smiles, "chemical/x-daylight-smiles"
-mime :inchi, "chemical/x-inchi"
-mime :sdf, "chemical/x-mdl-sdfile"
-mime :image, "image/gif"
-mime :names, "text/plain"
-
-set :default_content, :smiles
get %r{/(.+)} do |inchi| # catches all remaining get requests
- inchi = URI.unescape request.env['REQUEST_URI'].sub(/^\//,'') # hack to avoid sinatra's URI/CGI unescaping, splitting, ...
- respond_to do |format|
- format.smiles { OpenTox::Compound.new(:inchi => inchi).smiles }
- format.names { RestClient.get "#{CACTUS_URI}#{inchi}/names" }
- format.inchi { inchi }
- format.sdf { RestClient.get "#{CACTUS_URI}#{inchi}/sdf" }
- format.image { "#{CACTUS_URI}#{inchi}/image" }
+ inchi = URI.unescape request.env['REQUEST_URI'].sub(/^\//,'') # hack to avoid sinatra's URI/CGI unescaping, splitting, ..."
+ case request.env['HTTP_ACCEPT']
+ when "*/*"
+ OpenTox::Compound.new(:inchi => inchi).smiles
+ when "chemical/x-daylight-smiles"
+ OpenTox::Compound.new(:inchi => inchi).smiles
+ when "chemical/x-inchi"
+ inchi
+ when "chemical/x-mdl-sdfile"
+ OpenTox::Compound.new(:inchi => inchi).sdf
+ when "image/gif"
+ "#{CACTUS_URI}#{inchi}/image"
+ when "text/plain"
+ RestClient.get "#{CACTUS_URI}#{inchi}/names"
+ else
+ status 400
+ "Unsupported MIME type '#{request.content_type}'"
end
end
@@ -29,19 +30,12 @@ post '/?' do
OpenTox::Compound.new(:smiles => input).uri
when /chemical\/x-inchi/
OpenTox::Compound.new(:inchi => input).uri
+ when /chemical\/x-mdl-sdfile|chemical\/x-mdl-molfile/
+ OpenTox::Compound.new(:sdf => input).uri
when /text\/plain/
OpenTox::Compound.new(:name => input).uri
else
status 400
- "Unsupported MIME type #{request.content_type}"
- end
-=begin
- if params[:smiles]
- OpenTox::Compound.new(:smiles => params[:smiles]).uri
- elsif params[:inchi]
- OpenTox::Compound.new(:inchi => params[:inchi]).uri
- elsif params[:name]
- OpenTox::Compound.new(:name => params[:name]).uri
+ "Unsupported MIME type '#{request.content_type}'"
end
-=end
end