]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #5433 from AntonKhorev/user-routes-api-namespace
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 15 Jan 2025 12:55:41 +0000 (12:55 +0000)
committerGitHub <noreply@github.com>
Wed, 15 Jan 2025 12:55:41 +0000 (12:55 +0000)
Resourceful routes for users api

1  2 
config/routes.rb

diff --combined config/routes.rb
index d2b2830fdb1346654c9c70c57993f29809d4fe90,c7488e5b090f2f8b3152c8e1d3a7bbfedf289e86..9cb3a63edc1878dd2d126a3d0c5c2653549eb167
@@@ -66,14 -66,14 +66,14 @@@ OpenStreetMap::Application.routes.draw 
      get "map" => "map#index"
  
      get "trackpoints" => "tracepoints#index"
-     get "user/:id" => "users#show", :id => /\d+/, :as => :api_user
-     get "user/details" => "users#details"
-     get "user/gpx_files" => "users#gpx_files"
-     get "users" => "users#index", :as => :api_users
    end
  
    namespace :api, :path => "api/0.6" do
+     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"
      resources :user_preferences, :except => [:new, :create, :edit], :param => :preference_key, :path => "user/preferences" do
        collection do
          put "" => "user_preferences#update_all", :as => ""
    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]
    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, :destroy] do
      resource :role, :controller => "user_roles", :path => "roles/:role", :only => [:create, :destroy]
 +    scope :module => :users do
 +      resource :issued_blocks, :path => "blocks_by", :only => :show
 +      resource :received_blocks, :path => "blocks", :only => [:show, :edit, :destroy]
 +    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]
 -
 -  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
    get "/export/embed" => "export#embed"
  
    # messages
 -  resources :messages, :only => [:create, :show, :destroy] do
 +  resources :messages, :path_names => { :new => "new/:display_name" }, :id => /\d+/, :only => [:new, :create, :show, :destroy] do
      post :mark
      patch :unmute
  
 -    match :reply, :via => [:get, :post]
 -    collection do
 -      get :inbox
 -      get :muted
 -      get :outbox
 -    end
 +    resource :reply, :module => :messages, :path_names => { :new => "new" }, :only => :new
 +  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
    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