summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicha Rautenberg <rautenberg@in-silico.ch>2015-09-25 18:20:34 +0200
committerMicha Rautenberg <rautenberg@in-silico.ch>2015-09-25 18:20:34 +0200
commitf720b3376d84d226fc6d64c0a009647c803a62e3 (patch)
treea451f0cf2631cd3ac96e87f9b7bf50561a5cee58
parent6c143867084ba4594329498741251fe4000611e9 (diff)
JSON for get model and get model/{id}
-rw-r--r--application.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/application.rb b/application.rb
index 0ffc633..3f94032 100644
--- a/application.rb
+++ b/application.rb
@@ -31,19 +31,31 @@ end
# @param [Header] Accept one of text/uri-list,
# @return [text/uri-list] list of all prediction models
get "/model/?" do
- @models = OpenTox::Model::Prediction.all
- uri_list = @models.collect{|model| uri("/model/#{model.model_id}")}
+ models = OpenTox::Model::Prediction.all
case @accept
when "text/uri-list"
+ uri_list = models.collect{|model| uri("/model/#{model.model_id}")}
return uri_list.join("\n") + "\n"
+ when "application/json"
+ models = JSON.parse models.to_json
+ models.each_index do |idx|
+ models[idx][:URI] = uri("/model/#{models[idx]["model_id"]["$oid"]}")
+ models[idx][:crossvalidation_uri] = uri("/crossvalidation/#{models[idx]["crossvalidation_id"]["$oid"]}") if models[idx]["crossvalidation_id"]
+ end
+ return models.to_json
else
bad_request_error "Mime type #{@accept} is not supported."
end
end
get "/model/:id/?" do
- @model = OpenTox::Model::Lazar.find params[:id]
- return @model.to_json
+ model = OpenTox::Model::Lazar.find params[:id]
+ resource_not_found_error "Model with id: #{params[:id]} not found." unless model
+ model[:URI] = uri("/model/#{model.id}")
+ model[:neighbor_algorithm_parameters][:feature_dataset_uri] = uri("/dataset/#{model[:neighbor_algorithm_parameters][:feature_dataset_id]}") if model[:neighbor_algorithm_parameters][:feature_dataset_id]
+ model[:training_dataset_uri] = uri("/dataset/#{model.training_dataset_id}") if model.training_dataset_id
+ model[:prediction_feature_uri] = uri("/dataset/#{model.prediction_feature_id}") if model.prediction_feature_id
+ return model.to_json
end