impress/config/routes.rb
Emi Matchu 9733ceae25 Add bare-bones Item Getting Guide page
TNT requested that we figure out ways to connect the dots between
people's intentions on DTI to their purchases in the NC Mall.

But rather than just slam ad links everywhere, our plan is to design an
actually useful feature about it: the "Item Getting Guide". It'll break
down items by how you can actually get them (NP economy, NC Mall,
retired NC, Dyeworks, etc), and we're planning some cute actions you
can take, like shortcuts for getting them onto trade wishlists or into
your NC Mall cart.

This is just a little demo version of the page, just breaking down
items specified in the URL into NC/NP/PB! Later we'll do more granular
breakdown than this, with more info and actions—and we'll also like,
link to it at all, which isn't the case yet! (The main way we expect
people to get here is by a "Get these items" button we'll add to the
outfit editor, but there might be other paths, too.)
2024-05-06 20:37:59 -07:00

104 lines
No EOL
3.7 KiB
Ruby

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