change mime type and reformat search controller

This commit is contained in:
Steve Coast 2007-04-18 11:25:59 +00:00
parent 529279d227
commit c91b86a1d1
8 changed files with 51 additions and 51 deletions

View file

@ -7,7 +7,7 @@ class ApiController < ApplicationController
MAX_REQUEST_AREA = 0.25
def map
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
# Figure out the bbox
bbox = params['bbox']
unless bbox and bbox.count(',') == 3

View file

@ -5,7 +5,7 @@ class NodeController < ApplicationController
after_filter :compress_output
def create
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
if request.put?
node = nil
begin
@ -35,7 +35,7 @@ class NodeController < ApplicationController
end
def rest
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
unless Node.exists?(params[:id])
render :nothing => true, :status => 404
return
@ -89,7 +89,7 @@ class NodeController < ApplicationController
end
def nodes
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
ids = params['nodes'].split(',').collect {|n| n.to_i }
if ids.length > 0
nodelist = Node.find(ids)

View file

@ -1,7 +1,7 @@
class OldNodeController < ApplicationController
def history
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
node = Node.find(params[:id])
unless node

View file

@ -1,7 +1,7 @@
class OldSegmentController < ApplicationController
def history
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
segment = Segment.find(params[:id])
unless segment

View file

@ -1,6 +1,6 @@
class OldWayController < ApplicationController
def history
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
way = Way.find(params[:id])
unless way

View file

@ -22,17 +22,17 @@ class SearchController < ApplicationController
def do_search(do_ways,do_segments,do_nodes)
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
type = params['type']
value = params['value']
unless type or value
name = params['name']
if name
type = 'name'
value = name
end
end
unless type or value
name = params['name']
if name
type = 'name'
value = name
end
end
way_ids = Array.new
ways = Array.new
@ -43,49 +43,49 @@ class SearchController < ApplicationController
cond_tbl = Array.new
sql = '1=1'
if type
sql += ' AND k=?'
cond_tbl += [type]
sql += ' AND k=?'
cond_tbl += [type]
end
if value
sql += ' AND v=?'
cond_tbl += [value]
sql += ' AND v=?'
cond_tbl += [value]
end
cond_tbl = [sql] + cond_tbl
# Matching for tags column
if type and value
cond_tags = ['tags LIKE ? OR tags LIKE ? OR tags LIKE ? OR tags LIKE ?',
''+type+'='+value+'',
''+type+'='+value+';%',
'%;'+type+'='+value+';%',
'%;'+type+'='+value+'' ]
elsif type
cond_tags = ['tags LIKE ? OR tags LIKE ?',
''+type+'=%',
'%;'+type+'=%' ]
elsif value
cond_tags = ['tags LIKE ? OR tags LIKE ?',
'%='+value+';%',
'%='+value+'' ]
cond_tags = ['tags LIKE ? OR tags LIKE ? OR tags LIKE ? OR tags LIKE ?',
''+type+'='+value+'',
''+type+'='+value+';%',
'%;'+type+'='+value+';%',
'%;'+type+'='+value+'' ]
elsif type
cond_tags = ['tags LIKE ? OR tags LIKE ?',
''+type+'=%',
'%;'+type+'=%' ]
elsif value
cond_tags = ['tags LIKE ? OR tags LIKE ?',
'%='+value+';%',
'%='+value+'' ]
else
cond_tags = ['1=1']
cond_tags = ['1=1']
end
# First up, look for the ids of the ways we want
if do_ways
ways_tmp = WayTag.find(:all, :conditions => cond_tbl)
way_ids = ways_tmp.collect {|way| way.id }
# First up, look for the ids of the ways we want
if do_ways
ways_tmp = WayTag.find(:all, :conditions => cond_tbl)
way_ids = ways_tmp.collect {|way| way.id }
end
# Now, segments matching
if do_segments
segs = Segment.find(:all, :conditions => cond_tags)
if do_segments
segs = Segment.find(:all, :conditions => cond_tags)
end
# Now, nodes
if do_nodes
nodes = Node.find(:all, :conditions => cond_tags)
if do_nodes
nodes = Node.find(:all, :conditions => cond_tags)
end
# Get the remaining objects:
@ -93,22 +93,22 @@ class SearchController < ApplicationController
ways = Way.find(way_ids)
# Fetch any segments needed for our ways (only have matching segments so far)
seg_ids = Array.new
seg_ids = Array.new
ways.each do |way|
seg_ids += way.segments
seg_ids += way.segments
end
segments += Segment.find(seg_ids)
# Fetch any nodes needed for our segments (only have matching nodes so far)
node_ids = Array.new
segments.each do |seg|
node_ids += seg.node_a
node_ids += seg.node_b
node_ids += seg.node_a
node_ids += seg.node_b
end
nodes += Node.find(node_ids)
# Print
# Print
doc = OSM::API.get_xml_doc
nodes.each do |node|
doc.root << node.to_xml_node()

View file

@ -5,7 +5,7 @@ class SegmentController < ApplicationController
after_filter :compress_output
def create
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
if request.put?
segment = Segment.from_xml(request.raw_post, true)
@ -36,7 +36,7 @@ class SegmentController < ApplicationController
end
def rest
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
unless Segment.exists?(params[:id])
render :nothing => true, :status => 404
return
@ -81,7 +81,7 @@ class SegmentController < ApplicationController
end
def segments
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
ids = params['segments'].split(',').collect {|s| s.to_i }
if ids.length > 0
segmentlist = Segment.find(ids)

View file

@ -86,7 +86,7 @@ class WayController < ApplicationController
end
def ways
response.headers["Content-Type"] = 'application/xml'
response.headers["Content-Type"] = 'text/xml'
ids = params['ways'].split(',').collect {|w| w.to_i }
if ids.length > 0
waylist = Way.find(ids)