X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/79c306ad06155549ff6e5929ff20a1149b4862c4..3b0be171b9193c9939252f3e60a685dd1aa0af13:/config/routes.rb diff --git a/config/routes.rb b/config/routes.rb index 77b439865..0d6a51ad9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,18 +30,12 @@ OpenStreetMap::Application.routes.draw do post "changeset/comment/:id/hide" => "changeset_comments#destroy", :as => :changeset_comment_hide, :id => /\d+/ post "changeset/comment/:id/unhide" => "changeset_comments#restore", :as => :changeset_comment_unhide, :id => /\d+/ - put "node/create" => "nodes#create" get "node/:id/ways" => "ways#ways_for_node", :as => :node_ways, :id => /\d+/ get "node/:id/relations" => "relations#relations_for_node", :as => :node_relations, :id => /\d+/ get "node/:id/history" => "old_nodes#history", :as => :api_node_history, :id => /\d+/ post "node/:id/:version/redact" => "old_nodes#redact", :as => :node_version_redact, :version => /\d+/, :id => /\d+/ get "node/:id/:version" => "old_nodes#show", :as => :api_old_node, :id => /\d+/, :version => /\d+/ - get "node/:id" => "nodes#show", :as => :api_node, :id => /\d+/ - put "node/:id" => "nodes#update", :id => /\d+/ - delete "node/:id" => "nodes#delete", :id => /\d+/ - get "nodes" => "nodes#index" - put "way/create" => "ways#create" get "way/:id/history" => "old_ways#history", :as => :api_way_history, :id => /\d+/ get "way/:id/full" => "ways#full", :as => :way_full, :id => /\d+/ get "way/:id/relations" => "relations#relations_for_way", :as => :way_relations, :id => /\d+/ @@ -50,9 +44,7 @@ OpenStreetMap::Application.routes.draw do get "way/:id" => "ways#show", :as => :api_way, :id => /\d+/ put "way/:id" => "ways#update", :id => /\d+/ delete "way/:id" => "ways#delete", :id => /\d+/ - get "ways" => "ways#index" - put "relation/create" => "relations#create" get "relation/:id/relations" => "relations#relations_for_relation", :as => :relation_relations, :id => /\d+/ get "relation/:id/history" => "old_relations#history", :as => :api_relation_history, :id => /\d+/ get "relation/:id/full" => "relations#full", :as => :relation_full, :id => /\d+/ @@ -61,33 +53,41 @@ OpenStreetMap::Application.routes.draw do get "relation/:id" => "relations#show", :as => :api_relation, :id => /\d+/ put "relation/:id" => "relations#update", :id => /\d+/ delete "relation/:id" => "relations#delete", :id => /\d+/ - get "relations" => "relations#index" + end + + namespace :api, :path => "api/0.6" do + resources :nodes, :only => [:index, :create] + resources :nodes, :path => "node", :id => /\d+/, :only => [:show, :update, :destroy] + put "node/create" => "nodes#create", :as => nil + + resources :ways, :only => [:index, :create] + put "way/create" => "ways#create", :as => nil - get "map" => "map#index" + resources :relations, :only => [:index, :create] + put "relation/create" => "relations#create", :as => nil - get "trackpoints" => "tracepoints#index" + resource :map, :only => :show - get "user/:id" => "users#show", :id => /\d+/, :as => :api_user + resources :tracepoints, :path => "trackpoints", :only => :index + + resources :users, :only => :index + resources :users, :path => "user", :id => /\d+/, :only => :show + resources :user_traces, :path => "user/gpx_files", :module => :users, :controller => :traces, :only => :index get "user/details" => "users#details" - get "user/gpx_files" => "users#gpx_files" - get "users" => "users#index", :as => :api_users - resources :user_preferences, :except => [:new, :create, :edit], :param => :preference_key, :path => "user/preferences", :controller => "user_preferences" do + resources :user_preferences, :except => [:new, :create, :edit], :param => :preference_key, :path => "user/preferences" do collection do put "" => "user_preferences#update_all", :as => "" end end - resources :messages, :path => "user/messages", :constraints => { :id => /\d+/ }, :only => [:create, :show, :update, :destroy], :controller => "messages", :as => :api_messages do - collection do - get "inbox" - get "outbox" - end + resources :messages, :path => "user/messages", :constraints => { :id => /\d+/ }, :only => [:create, :show, :update, :destroy] + namespace :messages, :path => "user/messages" do + resource :inbox, :only => :show + resource :outbox, :only => :show end - post "/user/messages/:id" => "messages#update" - end + post "/user/messages/:id" => "messages#update", :as => nil - namespace :api, :path => "api/0.6" do resources :traces, :path => "gpx", :only => [:create, :show, :update, :destroy], :id => /\d+/ do scope :module => :traces do resource :data, :only => :show @@ -125,13 +125,16 @@ OpenStreetMap::Application.routes.draw do get "/relation/:id" => "relations#show", :id => /\d+/, :as => :relation get "/relation/:id/history" => "old_relations#index", :id => /\d+/, :as => :relation_history resources :old_relations, :path => "/relation/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show - resources :changesets, :path => "changeset", :id => /\d+/, :only => :show do - match :subscribe, :unsubscribe, :on => :member, :via => [:get, :post] + resources :changesets, :path => "changeset", :id => /\d+/, :only => :show do + resource :subscription, :controller => :changeset_subscriptions, :only => [:show, :create, :destroy] namespace :changeset_comments, :as => :comments, :path => :comments do resource :feed, :only => :show, :defaults => { :format => "rss" } end end + get "/changeset/:id/subscribe", :id => /\d+/, :to => redirect(:path => "/changeset/%{id}/subscription") + get "/changeset/:id/unsubscribe", :id => /\d+/, :to => redirect(:path => "/changeset/%{id}/subscription") + resources :notes, :path => "note", :id => /\d+/, :only => [:show, :new] get "/user/:display_name/history" => "changesets#index" @@ -182,11 +185,7 @@ OpenStreetMap::Application.routes.draw do get "/key" => "site#key" get "/id" => "site#id" get "/query" => "browse#query" - get "/user/new" => "users#new" - post "/user/new" => "users#create" - get "/user/terms" => "users#terms" - post "/user/save" => "users#save" - get "/user/:display_name/confirm/resend" => "confirmations#confirm_resend", :as => :user_confirm_resend + post "/user/:display_name/confirm/resend" => "confirmations#confirm_resend", :as => :user_confirm_resend match "/user/:display_name/confirm" => "confirmations#confirm", :via => [:get, :post] match "/user/confirm" => "confirmations#confirm", :via => [:get, :post] match "/user/confirm-email" => "confirmations#confirm_email", :via => [:get, :post] @@ -215,30 +214,33 @@ OpenStreetMap::Application.routes.draw do post "/preview/:type" => "site#preview", :as => :preview # traces - resources :traces, :except => [:show] + resources :traces, :id => /\d+/, :except => [:show] do + resource :data, :module => :traces, :only => :show + end get "/user/:display_name/traces/tag/:tag/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/traces/tag/%{tag}") get "/user/:display_name/traces/tag/:tag" => "traces#index" get "/user/:display_name/traces/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/traces") get "/user/:display_name/traces" => "traces#index" - get "/user/:display_name/traces/tag/:tag/rss" => "traces#georss", :defaults => { :format => :rss } - get "/user/:display_name/traces/rss" => "traces#georss", :defaults => { :format => :rss } - get "/user/:display_name/traces/:id" => "traces#show", :as => "show_trace" - scope "/user/:display_name/traces/:trace_id", :module => :traces do + get "/user/:display_name/traces/:id" => "traces#show", :id => /\d+/, :as => "show_trace" + scope "/user/:display_name/traces/:trace_id", :module => :traces, :trace_id => /\d+/ do get "picture" => "pictures#show", :as => "trace_picture" get "icon" => "icons#show", :as => "trace_icon" end get "/traces/tag/:tag/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/traces/tag/%{tag}") get "/traces/tag/:tag" => "traces#index" get "/traces/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/traces") - get "/traces/tag/:tag/rss" => "traces#georss", :defaults => { :format => :rss } - get "/traces/rss" => "traces#georss", :defaults => { :format => :rss } get "/traces/mine/tag/:tag/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/traces/mine/tag/%{tag}") get "/traces/mine/tag/:tag" => "traces#mine" get "/traces/mine/page/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/traces/mine") get "/traces/mine" => "traces#mine" get "/trace/create", :to => redirect(:path => "/traces/new") - get "/trace/:id/data" => "traces#data", :id => /\d+/, :as => "trace_data" - get "/trace/:id/edit", :to => redirect(:path => "/traces/%{id}/edit") + get "/trace/:id/data", :format => false, :id => /\d+/, :to => redirect(:path => "/traces/%{id}/data") + get "/trace/:id/data.:format", :id => /\d+/, :to => redirect(:path => "/traces/%{id}/data.%{format}") + get "/trace/:id/edit", :id => /\d+/, :to => redirect(:path => "/traces/%{id}/edit") + + namespace :traces, :path => "" do + resource :feed, :path => "(/user/:display_name)/traces(/tag/:tag)/rss", :only => :show, :defaults => { :format => :rss } + end # diary pages resources :diary_entries, :path => "diary", :only => [:new, :create, :index] do @@ -250,14 +252,13 @@ OpenStreetMap::Application.routes.draw do get "/user/:display_name/diary/rss" => "diary_entries#rss", :defaults => { :format => :rss } get "/diary/:language/rss" => "diary_entries#rss", :defaults => { :format => :rss } get "/diary/rss" => "diary_entries#rss", :defaults => { :format => :rss } - get "/user/:display_name/diary/comments/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/diary/comments") - get "/user/:display_name/diary/comments" => "diary_comments#index", :as => :diary_comments get "/user/:display_name/diary" => "diary_entries#index" get "/diary/:language" => "diary_entries#index" scope "/user/:display_name" do resources :diary_entries, :path => "diary", :only => [:edit, :update, :show], :id => /\d+/ do member do - post :hide, :unhide + post :hide + post :unhide end end end @@ -268,28 +269,44 @@ OpenStreetMap::Application.routes.draw do post "/diary_comments/:comment/unhide" => "diary_comments#unhide", :comment => /\d+/, :as => :unhide_diary_comment # user pages - resources :users, :path => "user", :param => :display_name, :only => [:show, :destroy] do + get "/user/terms", :to => redirect(:path => "/account/terms") + resources :users, :path => "user", :param => :display_name, :only => [:new, :create, :show] do resource :role, :controller => "user_roles", :path => "roles/:role", :only => [:create, :destroy] + scope :module => :users do + resources :diary_comments, :only => :index + resources :changeset_comments, :only => :index + resource :issued_blocks, :path => "blocks_by", :only => :show + resource :received_blocks, :path => "blocks", :only => [:show, :edit, :destroy] + resource :status, :only => :update + end end get "/user/:display_name/account", :to => redirect(:path => "/account/edit") - post "/user/:display_name/set_status" => "users#set_status", :as => :set_status_user - - resource :account, :only => [:edit, :update, :destroy] + get "/user/:display_name/diary/comments(/:page)", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/diary_comments") - namespace :account do - resource :deletion, :only => [:show] + resource :account, :only => [:edit, :update, :destroy] do + scope :module => :accounts do + resource :terms, :only => [:show, :update] + resource :deletion, :only => :show + end end + resource :dashboard, :only => [:show] - resource :preferences, :only => [:show, :edit, :update] + resource :preferences, :only => [:show, :update] + get "/preferences/edit", :to => redirect(:path => "/preferences") resource :profile, :only => [:edit, :update] # friendships - match "/user/:display_name/make_friend" => "friendships#make_friend", :via => [:get, :post], :as => "make_friend" - match "/user/:display_name/remove_friend" => "friendships#remove_friend", :via => [:get, :post], :as => "remove_friend" + scope "/user/:display_name" do + resource :follow, :only => [:create, :destroy, :show], :path => "follow" + + get "make_friend", :to => redirect("/user/%{display_name}/follow") + get "remove_friend", :to => redirect("/user/%{display_name}/follow") + end # user lists - match "/users" => "users#index", :via => [:get, :post] - match "/users/:status" => "users#index", :via => [:get, :post] + namespace :users do + resource :list, :path => "(:status)", :only => [:show, :update] + end # geocoder get "/search" => "geocoder#search" @@ -305,21 +322,23 @@ OpenStreetMap::Application.routes.draw do get "/export/embed" => "export#embed" # messages - resources :messages, :only => [:create, :show, :destroy] do - post :mark - patch :unmute - - match :reply, :via => [:get, :post] - collection do - get :inbox - get :muted - get :outbox + resources :messages, :path_names => { :new => "new/:display_name" }, :id => /\d+/, :only => [:new, :create, :show, :destroy] do + scope :module => :messages do + resource :reply, :path_names => { :new => "new" }, :only => :new + resource :read_mark, :only => [:create, :destroy] + resource :mute, :only => :destroy end end + namespace :messages, :path => "/messages" do + resource :inbox, :only => :show + resource :muted_inbox, :path => "muted", :only => :show + resource :outbox, :only => :show + end get "/user/:display_name/inbox", :to => redirect(:path => "/messages/inbox") get "/user/:display_name/outbox", :to => redirect(:path => "/messages/outbox") - get "/message/new/:display_name" => "messages#new", :as => "new_message" + get "/message/new/:display_name", :to => redirect(:path => "/messages/new/%{display_name}") get "/message/read/:message_id", :to => redirect(:path => "/messages/%{message_id}") + get "/messages/:message_id/reply", :to => redirect(:path => "/messages/%{message_id}/reply/new") # muting users scope "/user/:display_name" do @@ -328,11 +347,7 @@ OpenStreetMap::Application.routes.draw do resources :user_mutes, :only => [:index] # banning pages - get "/user/:display_name/blocks" => "user_blocks#blocks_on", :as => "user_blocks_on" - get "/user/:display_name/blocks_by" => "user_blocks#blocks_by", :as => "user_blocks_by" - get "/blocks/new/:display_name" => "user_blocks#new", :as => "new_user_block" - resources :user_blocks, :except => :new - match "/user/:display_name/blocks/revoke_all" => "user_blocks#revoke_all", :via => [:get, :post], :as => "revoke_all_user_blocks" + resources :user_blocks, :path_names => { :new => "new/:display_name" } # issues and reports resources :issues do