X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c647aa3d4db16ec7fcef6822609c7ef85a17ee5a..9a5d83598727507c978ac18e47b5fcc1dc687fd3:/app/models/trace.rb?ds=inline diff --git a/app/models/trace.rb b/app/models/trace.rb index b7b96c65e..214b0b647 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -1,3 +1,30 @@ +# == Schema Information +# +# Table name: gpx_files +# +# id :integer not null, primary key +# user_id :integer not null +# visible :boolean default(TRUE), not null +# name :string default(""), not null +# size :integer +# latitude :float +# longitude :float +# timestamp :datetime not null +# description :string default(""), not null +# inserted :boolean not null +# visibility :enum default("public"), not null +# +# Indexes +# +# gpx_files_timestamp_idx (timestamp) +# gpx_files_user_id_idx (user_id) +# gpx_files_visible_visibility_idx (visible,visibility) +# +# Foreign Keys +# +# gpx_files_user_id_fkey (user_id => users.id) +# + class Trace < ActiveRecord::Base self.table_name = "gpx_files" @@ -172,12 +199,12 @@ class Trace < ActiveRecord::Base el1 end - def from_xml(xml, create = false) + def update_from_xml(xml, create = false) p = XML::Parser.string(xml, :options => XML::Parser::Options::NOERROR) doc = p.parse doc.find("//osm/gpx_file").each do |pt| - return from_xml_node(pt, create) + return update_from_xml_node(pt, create) end raise OSM::APIBadXMLError.new("trace", xml, "XML doesn't contain an osm/gpx_file element.") @@ -185,7 +212,7 @@ class Trace < ActiveRecord::Base raise OSM::APIBadXMLError.new("trace", xml, ex.message) end - def from_xml_node(pt, create = false) + def update_from_xml_node(pt, create = false) raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil? self.visibility = pt["visibility"] @@ -194,8 +221,8 @@ class Trace < ActiveRecord::Base id = pt["id"].to_i # .to_i will return 0 if there is no number that can be parsed. # We want to make sure that there is no id with zero anyway - raise OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if id.zero? - raise OSM::APIBadUserInput.new("The id in the url (#{self.id}) is not the same as provided in the xml (#{id})") unless self.id == id + raise OSM::APIBadUserInput, "ID of trace cannot be zero when updating." if id.zero? + raise OSM::APIBadUserInput, "The id in the url (#{self.id}) is not the same as provided in the xml (#{id})" unless self.id == id end # We don't care about the time, as it is explicitly set on create/update/delete