From: Steve Coast Date: Thu, 24 Aug 2006 18:55:12 +0000 (+0000) Subject: nodes done, segment skelaton X-Git-Tag: live~8633 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/8a2db368f194686bd6a0bcfe1b7e13c58c0588fa nodes done, segment skelaton --- diff --git a/app/controllers/node_controller.rb b/app/controllers/node_controller.rb index 97d551776..b104688d3 100644 --- a/app/controllers/node_controller.rb +++ b/app/controllers/node_controller.rb @@ -13,8 +13,7 @@ class NodeController < ApplicationController render :text => node.id else - render :text => 'truesrgtsrtfgsar', :status => 500 -# render :nothing => true, :status => 500 + render :nothing => true, :status => 500 end return @@ -24,8 +23,7 @@ class NodeController < ApplicationController end end - render :text => 'FFFFFFFFFF ', :status => 500 -# render :nothing => true, :status => 500 # something went very wrong + render :nothing => true, :status => 500 # something went very wrong end def rest @@ -43,26 +41,26 @@ class NodeController < ApplicationController return when :delete - if node.visible node.visible = 0 - node.save_with_history - render :nothing => true else render :nothing => true, :status => 410 end when :put - new_node = Node.from_xml(request.raw_post) - new_node.timestamp = Time.now - new_node.user_id = @user.id + node.timestamp = Time.now + node.user_id = @user.id - if node.id == new_node.id and new_node.save_with_history - render :text => node.id + node.latitude = new_node.latitude + node.longitude = new_node.longitude + node.tags = new_node.tags + + if node.id == new_node.id and node.save_with_history + render :nothing => true, :status => 200 else render :nothing => true, :status => 500 end @@ -70,6 +68,4 @@ class NodeController < ApplicationController end end - - end diff --git a/app/controllers/segment_controller.rb b/app/controllers/segment_controller.rb new file mode 100644 index 000000000..b6e0c661e --- /dev/null +++ b/app/controllers/segment_controller.rb @@ -0,0 +1,2 @@ +class SegmentController < ApplicationController +end diff --git a/app/helpers/segment_helper.rb b/app/helpers/segment_helper.rb new file mode 100644 index 000000000..d6be137a8 --- /dev/null +++ b/app/helpers/segment_helper.rb @@ -0,0 +1,2 @@ +module SegmentHelper +end diff --git a/app/models/node.rb b/app/models/node.rb index b83d934a2..5c436fe46 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -2,11 +2,14 @@ class Node < ActiveRecord::Base require 'xml/libxml' set_table_name 'current_nodes' + validates_numericality_of :latitude + validates_numericality_of :longitude + # FIXME validate lat and lon within the world + has_many :old_nodes, :foreign_key => :id belongs_to :user - def self.from_xml(xml, create=false) p = XML::Parser.new p.string = xml @@ -33,7 +36,9 @@ class Node < ActiveRecord::Base if create node.timestamp = Time.now else - node.timestamp = Time.parse(pt['timestamp']) + if pt['timestamp'] + node.timestamp = Time.parse(pt['timestamp']) + end end tags = [] @@ -54,39 +59,34 @@ class Node < ActiveRecord::Base def save_with_history begin Node.transaction do - old_node = OldNode.from_node(this) - this.save + old_node = OldNode.from_node(self) + self.save old_node.save end return true rescue Exception => ex return nil - end end - def self.to_xml + def to_xml doc = XML::Document.new - - doc.encoding = "UTF-8" + doc.encoding = 'UTF-8' root = XML::Node.new 'osm' root['version'] = '0.4' root['generator'] = 'OpenStreetMap server' doc.root = root el1 = XML::Node.new 'node' - el1['id'] = this.id.to_s - el1['lat'] = this.latitude.to_s - el1['lon'] = this.longitude.to_s - split_tags(el1, this.tags) - el1['visible'] = thiss.visible.to_s - el1['timestamp'] = this.timestamp.xmlschema + el1['id'] = self.id.to_s + el1['lat'] = self.latitude.to_s + el1['lon'] = self.longitude.to_s + split_tags(el1, self.tags) + el1['visible'] = self.visible.to_s + el1['timestamp'] = self.timestamp.xmlschema root << el1 - - return root - + return doc end - private def split_tags(el, tags) tags.split(';').each do |tag| @@ -103,7 +103,4 @@ class Node < ActiveRecord::Base end end end - - - end diff --git a/app/models/old_node.rb b/app/models/old_node.rb index 339db9d08..2b18b819e 100644 --- a/app/models/old_node.rb +++ b/app/models/old_node.rb @@ -7,7 +7,7 @@ class OldNode < ActiveRecord::Base old_node = OldNode.new old_node.latitude = node.latitude old_node.longitude = node.longitude - old_node.visible = 1 + old_node.visible = node.visible old_node.tags = node.tags old_node.timestamp = node.timestamp old_node.user_id = node.user_id @@ -15,6 +15,4 @@ class OldNode < ActiveRecord::Base return old_node end - - end diff --git a/app/models/segment.rb b/app/models/segment.rb new file mode 100644 index 000000000..6e52a73ab --- /dev/null +++ b/app/models/segment.rb @@ -0,0 +1,2 @@ +class Segment < ActiveRecord::Base +end diff --git a/db/migrate/006_create_segments.rb b/db/migrate/006_create_segments.rb new file mode 100644 index 000000000..20c9efaf1 --- /dev/null +++ b/db/migrate/006_create_segments.rb @@ -0,0 +1,11 @@ +class CreateSegments < ActiveRecord::Migration + def self.up + create_table :segments do |t| + # t.column :name, :string + end + end + + def self.down + drop_table :segments + end +end