summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2009-08-17 11:11:40 +0200
committerChristoph Helma <helma@in-silico.de>2009-08-17 11:11:40 +0200
commit8259dffd02975beddd91a69b086f94402e540ebd (patch)
tree00c63b84caa3458b2f4bfea9a6391dcfbfe3f2e9
parentaf0d1ebb1511ca4da47b4c69db7b6861a8fa3d70 (diff)
production logging enabled, put instead of post for dataset additions
-rw-r--r--application.rb44
-rw-r--r--config.ru7
2 files changed, 31 insertions, 20 deletions
diff --git a/application.rb b/application.rb
index 60e727f..e100b1f 100644
--- a/application.rb
+++ b/application.rb
@@ -1,5 +1,5 @@
## SETUP
-[ 'rubygems', 'sinatra', 'sinatra/url_for', 'dm-core', 'dm-more', 'builder', 'csv', 'opentox-ruby-api-wrapper' ].each do |lib|
+[ 'rubygems', 'sinatra', 'sinatra/url_for', 'dm-core', 'dm-more', 'builder', 'opentox-ruby-api-wrapper' ].each do |lib|
require lib
end
@@ -8,8 +8,8 @@ end
class Dataset
include DataMapper::Resource
property :id, Serial
- property :name, String#, :unique => true
- property :finished, Boolean, :default => true
+ property :name, String
+ property :finished, Boolean, :default => false
has n, :associations
end
@@ -39,7 +39,6 @@ end
get '/:id' do
halt 404, "Dataset #{params[:id]} not found." unless dataset = Dataset.get(params[:id])
- #halt 202, "Still uploading data to dataset #{params[:id]} , please try again later." unless dataset.finished
halt 202, dataset.to_yaml unless dataset.finished
dataset.to_yaml
=begin
@@ -149,9 +148,7 @@ post '/?' do
dataset = Dataset.create :name => params[:name]
if params[:file]
- dataset.update_attributes(:finished => false)
Spork.spork do
- #CSV.foreach(params[:file][:tempfile].path) do |record|
File.open(params[:file][:tempfile].path).each_line do |line|
record = line.chomp.split(/,\s*/)
compound = OpenTox::Compound.new :smiles => record[0]
@@ -160,11 +157,26 @@ post '/?' do
end
dataset.update_attributes(:finished => true)
end
+
+=begin
+ elsif params[:data]
+ puts params[:data]
+ dataset = Dataset.create :name => params[:name]
+ #Spork.spork do
+ YAML.load(params[:data]).each do |record|
+ compound = OpenTox::Compound.new :uri => record[0]
+ feature = OpenTox::Feature.new :uri => record[1]
+ puts compound + "\t" , feature
+ Association.create(:compound_uri => compound.uri, :feature_uri => feature.uri, :dataset_id => dataset.id)
+ end
+ dataset.update_attributes(:finished => true)
+ #end
+=end
end
url_for("/", :full) + dataset.id.to_s
end
-post '/:id' do
+put '/:id' do
#protected!
halt 404, "Dataset #{params[:id]} not found." unless dataset = Dataset.get(params[:id])
compound_uri = params[:compound_uri]
@@ -173,6 +185,11 @@ post '/:id' do
url_for("/", :full) + dataset.id.to_s
end
+put '/:id/finished' do
+ halt 404, "Dataset #{params[:id]} not found." unless dataset = Dataset.get(params[:id])
+ dataset.update_attributes(:finished => true)
+end
+
delete '/:id' do
# dangerous, because other datasets might refer to it
#protected!
@@ -181,16 +198,3 @@ delete '/:id' do
dataset.destroy
"Successfully deleted dataset #{params[:id]}."
end
-
-=begin
-delete '/:id/associations' do
- #protected!
- begin
- dataset = Dataset.get params[:id]
- rescue
- halt 404, "Dataset #{params[:id]} not found."
- end
- dataset.associations.each { |a| a.destroy }
- "Associations for dataset #{params[:id]} successfully deleted."
-end
-=end
diff --git a/config.ru b/config.ru
index 920879d..85e510e 100644
--- a/config.ru
+++ b/config.ru
@@ -1,5 +1,12 @@
require 'rubygems'
require 'sinatra'
require 'application.rb'
+
+if ENV["RACK_ENV"] == 'production'
+ FileUtils.mkdir_p 'log' unless File.exists?('log')
+ log = File.new("log/sinatra.log", "a")
+ $stdout.reopen(log)
+ $stderr.reopen(log)
+end
run Sinatra::Application