SampleApp::Application.routes.draw do scope :as => 'jam_ruby' do resources :users resources :music_sessions end resources :users resources :sessions, only: [:new, :create, :destroy] root to: 'users#welcome' # signup, and signup completed, related pages match '/signup', to: 'users#new', :via => 'get' match '/signup', to: 'users#create', :via => 'post' match '/congratulations_musician', to: 'users#congratulations_musician' match '/congratulations_fan', to: 'users#congratulations_fan' match '/downloads', to: 'users#downloads' match '/signin', to: 'sessions#new', via: :get match '/signin', to: 'sessions#create', via: :post match '/signout', to: 'sessions#destroy', via: :delete # oauth match '/auth/:provider/callback', :to => 'sessions#oauth_callback' match '/auth/failure', :to => 'sessions#failure' # session / recording landing pages match '/sessions/:id' => 'music_sessions#show', :via => :get, :as => 'music_session_detail' match '/recordings/:id' => 'recordings#show', :via => :get, :as => 'recording_detail' match '/isp', :to => 'users#isp' match '/isp/ping.jar', :to => redirect('/ping.jar') match '/isp/ping:isp', :to => 'users#jnlp', :constraints => {:format => :jnlp}, :as => 'isp_ping' match '/client', to: 'clients#index' match '/confirm/:signup_token', to: 'users#signup_confirm', as: 'signup_confirm' match '/client/authed/:authed/:data', to: 'clients#auth_action', :as => :auth_action # ping test match '/ping', to: 'ping#index' match '/ping/pingat.jnlp', to: 'ping#at' match '/ping/pingcc.jnlp', to: 'ping#cc' match '/ping/pingno.jnlp', to: 'ping#no' match '/ping/pingtw.jnlp', to: 'ping#tw' match '/ping/pingvz.jnlp', to: 'ping#vz' # share tokens match '/s/:id', to: 'share_tokens#shareable_resolver', :as => 'share_token' # password reset match '/request_reset_password' => 'users#request_reset_password', :via => :get match '/reset_password' => 'users#reset_password', :via => :post match '/reset_password_token' => 'users#reset_password_token', :via => :get match '/reset_password_complete' => 'users#reset_password_complete', :via => :post # email update match '/confirm_email' => 'users#finalize_update_email', :as => 'confirm_email' # NOTE: if you change this, you break outstanding email changes because links in user inboxes are broken match '/gmail_contacts', to: 'gmail#gmail_contacts' match '/events/:slug', to: 'events#show', :via => :get, :as => 'event' match '/endorse/:id/:service', to: 'users#endorse', :as => 'endorse' # temporarily allow for debugging--only allows admini n match '/listen_in', to: 'spikes#listen_in' # embed resque-web if this is development mode if Rails.env == "development" require 'resque/server' require 'resque-retry' require 'resque-retry/server' mount Resque::Server.new, :at => "/resque" if Rails.env == "development" # route to spike controller (proof-of-concepts) match '/facebook_invite', to: 'spikes#facebook_invite' match '/launch_app', to: 'spikes#launch_app' # junk pages match '/help', to: 'static_pages#help' match '/about', to: 'static_pages#about' match '/contact', to: 'static_pages#contact' match '/faders', to: 'static_pages#faders' end if Rails.env == "test" match '/test_connection', to: 'sessions#connection_state', :as => :connection_state # vanilla forums 'fake methods' match '/forums', to: 'vanilla_forums#fake_root' match '/forums/entry/jsconnect', to: 'vanilla_forums#fake_jsconnect' end # vanilla forums sso match '/forums/sso', to: 'vanilla_forums#authenticate' # admin-only page to control settings match '/extras/settings', to: 'extras#settings' scope '/corp' do # about routes match '/about', to: 'corps#about', as: 'corp_about' # news routes match '/news', to: 'corps#news', as: 'corp_news' # media center routes match '/media_center', to: 'corps#media_center', as: 'corp_media_center' match '/overview', to: 'corps#overview', as: 'corp_overview' match '/features', to: 'corps#features', as: 'corp_features' match '/faqs', to: 'corps#faqs', as: 'corp_faqs' match '/screenshots', to: 'corps#screenshots', as: 'corp_screenshots' match '/photos', to: 'corps#photos', as: 'corp_photos' match '/logos', to: 'corps#logos', as: 'corp_logos' match '/testimonials', to: 'corps#testimonials', as: 'corp_testimonials' match '/audio', to: 'corps#audio', as: 'corp_audio' match '/videos', to: 'corps#videos', as: 'corp_videos' # contact routes match '/contact', to: 'corps#contact', as: 'corp_contact' # privacy routes match '/privacy', to: 'corps#privacy', as: 'corp_privacy' # terms routes match '/terms', to: 'corps#terms', as: 'corp_terms' # help routes match '/help', to: 'corps#help', as: 'corp_help' match '/cookies_policy',to: 'corps#cookie_policy', as: 'corp_cookie_policy' match '/premium_accounts',to: 'corps#premium_accounts', as: 'corp_premium_accounts' end scope '/api' do match '/auths/login' => 'api_auths#login', :via => :post # music sessions match '/sessions/:id/participants' => 'api_music_sessions#participant_create', :via => :post match '/participants/:id' => 'api_music_sessions#participant_show', :via => :get, :as => 'api_session_participant_detail' match '/participants/:id' => 'api_music_sessions#participant_delete', :via => :delete match '/sessions/:id' => 'api_music_sessions#show', :via => :get, :as => 'api_session_detail' match '/sessions/:id' => 'api_music_sessions#update', :via => :put match '/sessions' => 'api_music_sessions#index', :via => :get match '/sessions/nindex/:client_id' => 'api_music_sessions#nindex', :via => :get match '/sessions/legacy' => 'api_music_sessions#create_legacy', :via => :post match '/sessions/:id/perf' => 'api_music_sessions#perf_upload', :via => :put match '/sessions/:id/comments' => 'api_music_sessions#add_comment', :via => :post match '/sessions/:id/likes' => 'api_music_sessions#add_like', :via => :post match '/sessions/:id/history' => 'api_music_sessions#history_show', :via => :get # music session tracks match '/sessions/:id/tracks' => 'api_music_sessions#track_create', :via => :post match '/sessions/:id/tracks' => 'api_music_sessions#track_sync', :via => :put match '/sessions/:id/tracks' => 'api_music_sessions#track_index', :via => :get match '/sessions/:id/tracks/:track_id' => 'api_music_sessions#track_update', :via => :post match '/sessions/:id/tracks/:track_id' => 'api_music_sessions#track_show', :via => :get, :as => 'api_session_track_detail' match '/sessions/:id/tracks/:track_id' => 'api_music_sessions#track_destroy', :via => :delete # music session playback recording state match '/sessions/:id/claimed_recording/:claimed_recording_id/start' => 'api_music_sessions#claimed_recording_start', :via => :post match '/sessions/:id/claimed_recording/:claimed_recording_id/stop' => 'api_music_sessions#claimed_recording_stop', :via => :post match '/participant_histories/:id/rating' => 'api_music_sessions#participant_rating', :via => :post # genres match '/genres' => 'api_genres#index', :via => :get # users match '/users/isp_scoring' => 'api_users#isp_scoring', :via => :post , :as => 'isp_scoring' match '/users' => 'api_users#index', :via => :get match '/users/:id' => 'api_users#show', :via => :get, :as => 'api_user_detail' #match '/users' => 'api_users#create', :via => :post match '/users/:id' => 'api_users#update', :via => :post match '/users/:id' => 'api_users#delete', :via => :delete match '/users/confirm/:signup_token' => 'api_users#signup_confirm', :via => :post, :as => 'api_signup_confirmation' match '/users/complete/:signup_token' => 'api_users#complete', as: 'complete', via: 'post' match '/users/:id/set_password' => 'api_users#set_password', :via => :post # login/logout match '/auth_session' => 'api_users#auth_session_create', :via => :post match '/auth_session' => 'api_users#auth_session_delete', :via => :delete # session settings match '/users/:id/session_settings' => 'api_users#session_settings_show', :via => :get # session history match '/users/:id/session_history' => 'api_users#session_history_index', :via => :get match '/users/:id/session_history/:session_id/users' => 'api_users#session_user_history_index', :via => :get # user bands match '/users/:id/bands' => 'api_users#band_index', :via => :get # user likers match '/users/:id/likers' => 'api_users#liker_index', :via => :get # user likes match '/users/:id/likings' => 'api_users#liking_index', :via => :get, :as => 'api_user_liking_index' match '/users/:id/likings' => 'api_users#liking_create', :via => :post match '/users/:id/likings/:likable_id' => 'api_users#liking_destroy', :via => :delete # user followers match '/users/:id/followers' => 'api_users#follower_index', :via => :get, :as => 'api_user_follower_index' # user followings match '/users/:id/followings' => 'api_users#following_index', :via => :get, :as => 'api_user_following_index' match '/users/:id/followings' => 'api_users#following_create', :via => :post match '/users/:id/followings/:followable_id' => 'api_users#following_destroy', :via => :delete # favorites match '/users/:id/favorites' => 'api_users#favorite_index', :via => :get, :as => 'api_favorite_index' match '/users/:id/favorites' => 'api_users#favorite_create', :via => :post match '/users/:id/favorites/:recording_id' => 'api_users#favorite_destroy', :via => :delete # friend requests match '/users/:id/friend_requests' => 'api_users#friend_request_index', :via => :get match '/users/:id/friend_requests/:friend_request_id' => 'api_users#friend_request_show', :via => :get, :as => 'api_friend_request_detail' match '/users/:id/friend_requests' => 'api_users#friend_request_create', :via => :post match '/users/:id/friend_requests/:friend_request_id' => 'api_users#friend_request_update', :via => :post # friends match '/users/:id/friends' => 'api_users#friend_index', :via => :get match '/users/:id/friends/:friend_id' => 'api_users#friend_show', :via => :get, :as => 'api_friend_detail' match '/users/:id/friends/:friend_id' => 'api_users#friend_destroy', :via => :delete # notifications match '/users/:id/notifications' => 'api_users#notification_index', :via => :get match '/users/:id/notifications/:notification_id' => 'api_users#notification_destroy', :via => :delete match '/users/:id/notifications' => 'api_users#notification_create', :via => :post # user band invitations match '/users/:id/band_invitations' => 'api_users#band_invitation_index', :via => :get match '/users/:id/band_invitations/:invitation_id' => 'api_users#band_invitation_show', :via => :get, :as => 'api_user_band_invitation_detail' match '/users/:id/band_invitations/:invitation_id' => 'api_users#band_invitation_update', :via => :post # user account settings match '/users/:id/update_email' => 'api_users#begin_update_email', :via => :post, :as => 'begin_update_email' match '/users/update_email/:token' => 'api_users#finalize_update_email', :via => :post, :as => 'finalize_update_email' # user profile match '/users/:id/avatar' => 'api_users#update_avatar', :via => :post match '/users/:id/avatar' => 'api_users#delete_avatar', :via => :delete match '/users/:id/filepicker_policy' => 'api_users#generate_filepicker_policy', :via => :get # user progression match '/users/progression/downloaded_client' => 'api_users#downloaded_client', :via => :post match '/users/progression/certified_gear' => 'api_users#qualified_gear', :via => :post match '/users/progression/social_promoted' => 'api_users#social_promoted', :via => :post # social match '/users/:id/share/session/:provider' => 'api_users#share_session', :via => :get match '/users/:id/share/recording/:provider' => 'api_users#share_recording', :via => :get # session chat match '/chat' => 'api_chats#create', :via => :post match '/sessions/:music_session/chats' => 'api_chats#index', :via => :get # user recordings # match '/users/:id/recordings' => 'api_users#recording_index', :via => :get # match '/users/:id/recordings/:recording_id' => 'api_users#recording_show', :via => :get, :as => 'api_recording_detail' # match '/users/:id/recordings' => 'api_users#recording_create', :via => :post # match '/users/:id/recordings/:recording_id' => 'api_users#recording_update', :via => :post # match '/users/:id/recordings/:recording_id' => 'api_users#recording_destroy', :via => :delete match '/users/:id/plays' => 'api_users#add_play', :via => :post, :as => 'api_users_add_play' match '/users/:id/affiliate' => 'api_users#affiliate_report', :via => :get, :as => 'api_users_affiliate' # bands match '/bands' => 'api_bands#index', :via => :get match '/bands/validate' => 'api_bands#validate', :via => :post match '/bands/:id' => 'api_bands#show', :via => :get, :as => 'api_band_detail' match '/bands' => 'api_bands#create', :via => :post match '/bands/:id' => 'api_bands#update', :via => :post # photo match '/bands/:id/photo' => 'api_bands#update_photo', :via => :post match '/bands/:id/photo' => 'api_bands#delete_photo', :via => :delete match '/bands/:id/filepicker_policy' => 'api_bands#generate_filepicker_policy', :via => :get # band members match '/bands/:id/musicians' => 'api_bands#musician_index', :via => :get match '/bands/:id/musicians' => 'api_bands#musician_create', :via => :post match '/bands/:id/musicians/:user_id' => 'api_bands#musician_destroy', :via => :delete # band likers match '/bands/:id/likers' => 'api_bands#liker_index', :via => :get # band followers match '/bands/:id/followers' => 'api_bands#follower_index', :via => :get # band recordings match '/bands/:id/recordings' => 'api_bands#recording_index', :via => :get match '/bands/:id/recordings/:recording_id' => 'api_bands#recording_show', :via => :get, :as => 'api_band_recording_detail' match '/bands/:id/recordings' => 'api_bands#recording_create', :via => :post match '/bands/:id/recordings/:recording_id' => 'api_bands#recording_update', :via => :post match '/bands/:id/recordings/:recording_id' => 'api_bands#recording_destroy', :via => :delete # band invitations match '/bands/:id/invitations' => 'api_bands#invitation_index', :via => :get match '/bands/:id/invitations/:invitation_id' => 'api_bands#invitation_show', :via => :get, :as => 'api_band_invitation_detail' match '/bands/:id/invitations' => 'api_bands#invitation_create', :via => :post match '/bands/:id/invitations/:invitation_id' => 'api_bands#invitation_update', :via => :post match '/bands/:id/invitations/:invitation_id' => 'api_bands#invitation_destroy', :via => :delete # invitations match '/invitations/:id' => 'api_invitations#show', :via => :get, :as => 'api_invitation_detail' match '/invitations/:id' => 'api_invitations#delete', :via => :delete match '/invitations' => 'api_invitations#index', :via => :get match '/invitations' => 'api_invitations#create', :via => :post # invited users match '/invited_users/:id' => 'api_invited_users#show', :via => :get, :as => 'api_invited_user_detail' match '/invited_users' => 'api_invited_users#index', :via => :get match '/invited_users' => 'api_invited_users#create', :via => :post # instruments match '/instruments/:id' => 'api_instruments#show', :via => :get, :as => 'api_instrument_detail' match '/instruments' => 'api_instruments#index', :via => :get # search match '/search' => 'api_search#index', :via => :get # join requests match '/join_requests/:id' => 'api_join_requests#show', :via => :get, :as => 'api_join_request_detail' match '/join_requests/:id' => 'api_join_requests#delete', :via => :delete match '/join_requests' => 'api_join_requests#create', :via => :post match '/join_requests/:id' => 'api_join_requests#update', :via => :put match '/join_requests' => 'api_join_requests#index', :via => :get # Location lookups match '/countries' => 'api_maxmind_requests#countries', :via => :get match '/countriesx' => 'api_maxmind_requests#countriesx', :via => :get match '/regions' => 'api_maxmind_requests#regions', :via => :get match '/cities' => 'api_maxmind_requests#cities', :via => :get match '/isps' => 'api_maxmind_requests#isps', :via => :get match '/resolved_location' => 'api_maxmind_requests#resolved_location', :via => :get # Recordings match '/recordings/uploads' => 'api_recordings#list_uploads', :via => :get, :as => 'api_recordings_list_uploads' match '/recordings/downloads' => 'api_recordings#list_downloads', :via => :get, :as => 'api_recordings_list_downloads' match '/recordings/start' => 'api_recordings#start', :via => :post, :as => 'api_recordings_start' match '/recordings/:id' => 'api_recordings#show', :via => :get, :as => 'api_recordings_detail' match '/recordings/:id/stop' => 'api_recordings#stop', :via => :post, :as => 'api_recordings_stop' match '/recordings/:id/claim' => 'api_recordings#claim', :via => :post, :as => 'api_recordings_claim' match '/recordings/:id/comments' => 'api_recordings#add_comment', :via => :post, :as => 'api_recordings_add_comment' match '/recordings/:id/likes' => 'api_recordings#add_like', :via => :post, :as => 'api_recordings_add_like' match '/recordings/:id/discard' => 'api_recordings#discard', :via => :post, :as => 'api_recordings_discard' match '/recordings/:id/tracks/:track_id/download' => 'api_recordings#download', :via => :get, :as => 'api_recordings_download' match '/recordings/:id/tracks/:track_id/upload_next_part' => 'api_recordings#upload_next_part', :via => :get match '/recordings/:id/tracks/:track_id/upload_sign' => 'api_recordings#upload_sign', :via => :get match '/recordings/:id/tracks/:track_id/upload_part_complete' => 'api_recordings#upload_part_complete', :via => :post match '/recordings/:id/tracks/:track_id/upload_complete' => 'api_recordings#upload_complete', :via => :post # Claimed Recordings match '/claimed_recordings' => 'api_claimed_recordings#index', :via => :get match '/claimed_recordings/:id' => 'api_claimed_recordings#show', :via => :get match '/claimed_recordings/:id' => 'api_claimed_recordings#update', :via => :put match '/claimed_recordings/:id' => 'api_claimed_recordings#delete', :via => :delete match '/claimed_recordings/:id/download(/:type)' => 'api_claimed_recordings#download', :via => :get, :as => :claimed_recording_download # Mixes match '/mixes/schedule' => 'api_mixes#schedule', :via => :post match '/mixes/next' => 'api_mixes#next', :via => :get match '/mixes/:id/download(/:type)' => 'api_mixes#download', :via => :get, :as => :mix_download # version check for JamClient match '/versioncheck' => 'artifacts#versioncheck' # list all uris for available clients on mac, windows, linux, if available match '/artifacts/clients' => 'artifacts#client_downloads' # crash logs match '/dumps' => 'api_users#crash_dump', :via => :put # feedback from corporate site api match '/feedback' => 'api_corporate#feedback', :via => :post # icecast urls match '/icecast/test' => 'api_icecast#test', :via => :get match '/icecast/mount_add' => 'api_icecast#mount_add', :via => :post match '/icecast/mount_remove' => 'api_icecast#mount_remove', :via => :post match '/icecast/listener_add' => 'api_icecast#listener_add', :via => :post match '/icecast/listener_remove' => 'api_icecast#listener_remove', :via => :post # tweet on behalf of client match '/twitter/tweet' => 'api_twitters#tweet', :via => :post # feed match '/feeds' => 'api_feeds#index', :via => :get # scoring # todo scoring should pick the clientid up from the current logged in user match '/scoring/work/:clientid' => 'api_scoring#work', :via => :get match '/scoring/worklist/:clientid' => 'api_scoring#worklist', :via => :get match '/scoring/record' => 'api_scoring#record', :via => :post # favorites match '/favorites' => 'api_favorites#index', :via => :get match '/favorites/:id' => 'api_favorites#update', :via => :post end end