Add JSON output to /api/0.6/capabilities
This commit is contained in:
parent
f47eeb0632
commit
24d6b3c55f
2 changed files with 71 additions and 0 deletions
44
app/views/api/capabilities/show.json.jbuilder
Normal file
44
app/views/api/capabilities/show.json.jbuilder
Normal file
|
@ -0,0 +1,44 @@
|
|||
json.partial! "api/root_attributes"
|
||||
|
||||
json.api do
|
||||
json.version do
|
||||
json.minimum Settings.api_version
|
||||
json.maximum Settings.api_version
|
||||
end
|
||||
json.area do
|
||||
json.maximum Settings.max_request_area
|
||||
end
|
||||
json.note_area do
|
||||
json.maximum Settings.max_note_request_area
|
||||
end
|
||||
json.tracepoints do
|
||||
json.per_page Settings.tracepoints_per_page
|
||||
end
|
||||
json.waynodes do
|
||||
json.maximum Settings.max_number_of_way_nodes
|
||||
end
|
||||
json.relationmembers do
|
||||
json.maximum Settings.max_number_of_relation_members
|
||||
end
|
||||
json.changesets do
|
||||
json.maximum_elements Changeset::MAX_ELEMENTS
|
||||
json.default_query_limit Settings.default_changeset_query_limit
|
||||
json.maximum_query_limit Settings.max_changeset_query_limit
|
||||
end
|
||||
json.timeout do
|
||||
json.seconds Settings.api_timeout
|
||||
end
|
||||
json.status do
|
||||
json.database @database_status
|
||||
json.api @api_status
|
||||
json.gpx @gpx_status
|
||||
end
|
||||
end
|
||||
|
||||
json.policy do
|
||||
json.imagery do
|
||||
json.blacklist(Settings.imagery_blacklist) do |url_regex|
|
||||
json.regex url_regex.to_s
|
||||
end
|
||||
end
|
||||
end
|
|
@ -9,6 +9,10 @@ module Api
|
|||
{ :path => "/api/capabilities", :method => :get },
|
||||
{ :controller => "api/capabilities", :action => "show" }
|
||||
)
|
||||
assert_routing(
|
||||
{ :path => "/api/capabilities.json", :method => :get },
|
||||
{ :controller => "api/capabilities", :action => "show", :format => "json" }
|
||||
)
|
||||
assert_recognizes(
|
||||
{ :controller => "api/capabilities", :action => "show" },
|
||||
{ :path => "/api/0.6/capabilities", :method => :get }
|
||||
|
@ -32,5 +36,28 @@ module Api
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_capabilities_json
|
||||
get api_capabilities_path, :params => { :format => "json" }
|
||||
assert_response :success
|
||||
js = ActiveSupport::JSON.decode(@response.body)
|
||||
assert_not_nil js
|
||||
|
||||
assert_equal Settings.api_version, js["version"]
|
||||
assert_equal Settings.generator, js["generator"]
|
||||
assert_equal Settings.api_version, js["api"]["version"]["minimum"]
|
||||
assert_equal Settings.api_version, js["api"]["version"]["maximum"]
|
||||
assert_equal Settings.max_request_area, js["api"]["area"]["maximum"]
|
||||
assert_equal Settings.max_note_request_area, js["api"]["note_area"]["maximum"]
|
||||
assert_equal Settings.tracepoints_per_page, js["api"]["tracepoints"]["per_page"]
|
||||
assert_equal Changeset::MAX_ELEMENTS, js["api"]["changesets"]["maximum_elements"]
|
||||
assert_equal Settings.default_changeset_query_limit, js["api"]["changesets"]["default_query_limit"]
|
||||
assert_equal Settings.max_changeset_query_limit, js["api"]["changesets"]["maximum_query_limit"]
|
||||
assert_equal Settings.max_number_of_relation_members, js["api"]["relationmembers"]["maximum"]
|
||||
assert_equal "online", js["api"]["status"]["database"]
|
||||
assert_equal "online", js["api"]["status"]["api"]
|
||||
assert_equal "online", js["api"]["status"]["gpx"]
|
||||
assert_equal Settings.imagery_blacklist.length, js["policy"]["imagery"]["blacklist"].length
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue