summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrautenberg <rautenberg@in-silico.ch>2016-08-30 18:14:39 +0200
committerrautenberg <rautenberg@in-silico.ch>2016-08-30 18:14:39 +0200
commitc328cc73ff6236cd3f901d003e3d87f22def0c7b (patch)
tree7c172888ee87925b0ad03339cbe4ed1a166edb5e
parent8432a0f85806693dce66e667ba8eed3954402bb9 (diff)
add some dataset routes
-rw-r--r--lib/dataset.rb22
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index 227ff20..6ab1c39 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -11,13 +11,31 @@ get "/dataset/?" do
datasets = JSON.parse datasets.to_json
datasets.each_index do |idx|
datasets[idx][:URI] = uri("/dataset/#{datasets[idx]["_id"]["$oid"]}")
- #models[idx][:crossvalidation_uri] = uri("/crossvalidation/#{models[idx]["crossvalidation_id"]["$oid"]}") if models[idx]["crossvalidation_id"]
end
- return models.to_json
+ return datasets.to_json
else
bad_request_error "Mime type #{@accept} is not supported."
end
+end
+
+
+get "/dataset/:id/?" do
+ dataset = Dataset.find :id => params[:id]
+ resource_not_found_error "Dataset with id: #{params[:id]} not found." unless dataset
+ dataset[:URI] = uri("/dataset/#{dataset.id}")
+ dataset[:substances] = uri("/dataset/#{dataset.id}/substances")
+ dataset[:features] = uri("/dataset/#{dataset.id}/features")
+ return dataset.to_json
+end
+
+get "/dataset/:id/:attribute/?" do
+ dataset = Dataset.find :id => params[:id]
+ resource_not_found_error "Dataset with id: #{params[:id]} not found." unless dataset
+ attribs = ["compounds", "nanoparticles", "substances", "features"]
+ bad_request_error "Attribute #{params[:attribute]} is not availabe. Choose one of #{attribs.join(', ')}" unless attribs.include? params[:attribute]
+ out = dataset.send(params[:attribute])
+ return out.to_json
end