diff --git a/.gitignore b/.gitignore index 68d9c3f8e..4045ab4b2 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ test/test_run.log test/data/ontology_files/catalog-v001.xml create_permissions.log + +ontologies_api.iml diff --git a/controllers/mappings_controller.rb b/controllers/mappings_controller.rb index 29e26483a..ed071e2b7 100644 --- a/controllers/mappings_controller.rb +++ b/controllers/mappings_controller.rb @@ -35,6 +35,8 @@ class MappingsController < ApplicationController reply mappings end + + namespace "/mappings" do # Display all mappings get do @@ -76,16 +78,7 @@ class MappingsController < ApplicationController # Display a single mapping - only rest get '/:mapping' do - mapping_id = nil - if params[:mapping] and params[:mapping].start_with?("http") - mapping_id = params[:mapping] - mapping_id = mapping_id.gsub("/mappings/","/rest_backup_mappings/") - mapping_id = RDF::URI.new(params[:mapping]) - else - mapping_id = - "http://data.bioontology.org/rest_backup_mappings/#{mapping_id}" - mapping_id = RDF::URI.new(mapping_id) - end + mapping_id = request_mapping_id mapping = LinkedData::Mappings.get_rest_mapping(mapping_id) if mapping reply populate_mapping_classes([mapping].first) @@ -147,6 +140,20 @@ class MappingsController < ApplicationController reply(201, mapping) end + + patch '/:mapping' do + mapping = LinkedData::Mappings.get_rest_mapping(request_mapping_id) + process = mapping.process + populate_from_params(process, params) + if process.valid? + process.save + else + error 422, process.errors + end + halt 204 + end + + # Delete a mapping delete '/:mapping' do mapping_id = RDF::URI.new(replace_url_prefix(params[:mapping])) diff --git a/helpers/mappings_helper.rb b/helpers/mappings_helper.rb index e65a98d38..246fbcdba 100644 --- a/helpers/mappings_helper.rb +++ b/helpers/mappings_helper.rb @@ -33,6 +33,18 @@ def populate_mapping_classes(mappings) mappings end + + def request_mapping_id + mapping_id = nil + if params[:mapping] and params[:mapping].start_with?("http") + mapping_id = RDF::URI.new(params[:mapping]) + else + mapping_id = + "http://data.bioontology.org/rest_backup_mappings/#{params[:mapping]}" + mapping_id = RDF::URI.new(mapping_id) + end + mapping_id + end end end end