diff options
author | rautenberg <rautenberg@in-silico.ch> | 2016-08-30 18:14:39 +0200 |
---|---|---|
committer | rautenberg <rautenberg@in-silico.ch> | 2016-08-30 18:14:39 +0200 |
commit | c328cc73ff6236cd3f901d003e3d87f22def0c7b (patch) | |
tree | 7c172888ee87925b0ad03339cbe4ed1a166edb5e | |
parent | 8432a0f85806693dce66e667ba8eed3954402bb9 (diff) |
add some dataset routes
-rw-r--r-- | lib/dataset.rb | 22 |
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 |