OpenneoImpressItems::Application.routes.draw do root :to => 'outfits#new' # Login and account management! devise_for :auth_users, path: "users", skip: [:registrations] resources :auth_users, only: [:new, :create, :update] get '/users/edit', to: 'auth_users#edit', as: 'edit_auth_user' # The outfit editor! # TODO: It's a bit silly that outfits/new points to outfits#edit. # Should we refactor the controller/view structure here? get '/outfits/new', to: 'outfits#edit', as: :wardrobe get '/wardrobe' => redirect('/outfits/new') get '/start/:color_name/:species_name' => 'outfits#start' # The outfits users have created! resources :outfits, :only => [:show, :create, :update, :destroy] get '/your-outfits', to: 'outfits#index', as: :current_user_outfits get '/users/current-user/outfits', to: redirect('/your-outfits') # Our customization data! Both the item pages, and JSON API endpoints. resources :items, :only => [:index, :show] do resources :trades, path: 'trades/:type', controller: 'item_trades', only: [:index], constraints: {type: /offering|seeking/} resources :appearances, controller: 'item_appearances', only: [:index] collection do get :needed get "sources/:ids", action: :sources end end resources :species, only: [] do resources :colors, only: [] do get :pet_type, to: 'pet_types#show' end resources :alt_styles, path: 'alt-styles', only: [:index] end resources :alt_styles, path: 'alt-styles', only: [:index] # Loading and modeling pets! post '/pets/load' => 'pets#load', :as => :load_pet get '/modeling' => 'pets#bulk', :as => :bulk_pets # Contributions to our modeling database! resources :contributions, :only => [:index] get 'users/top-contributors' => 'users#top_contributors', :as => :top_contributors get 'users/top_contributors' => redirect('/users/top-contributors') # User resources, like their item lists! resources :users, :path => 'user', :only => [:index, :update] do resources :contributions, :only => [:index] resources :closet_hangers, :only => [:index, :update, :destroy], :path => 'closet' do collection do get :petpage put :update delete :destroy end end resources :closet_lists, :only => [:new, :create, :edit, :update, :destroy], :path => 'closet/lists' resources :items, :only => [] do resources :closet_hangers, :only => [:create] do collection do put :update_quantities end end end resources :neopets_connections, path: 'neopets-connections', only: [:create, :destroy] resource :neopass_connection, path: "neopass-connection", only: [:destroy] end get 'users/current-user/closet' => 'closet_hangers#index', :as => :your_items # Importing users' owned items from Neopets.com! scope 'import' do resources :neopets_page_import_tasks, only: [:new, :create], path: ':page_type/pages/:expected_index' end # Donation campaign stuff! scope module: "fundraising", as: "fundraising" do resources :donations, only: [:create, :show, :update] do collection do resources :donation_features, path: 'features', only: [:index] end end resources :campaigns, only: [:show], path: '/donate/campaigns' end get '/donate' => 'fundraising/campaigns#current', as: :donate # About pages! get '/terms', to: "about#terms", as: :terms get '/privacy', to: redirect(Rails.configuration.impress_2020_origin + "/privacy") get '/about/neopass', to: 'about#neopass' # Other useful lil things! get '/sitemap.xml' => 'sitemap#index', :as => :sitemap, :format => :xml get '/robots.txt' => 'sitemap#robots', :as => :robots, :format => :text post '/locales/choose' => 'locales#choose', :as => :choose_locale end