rosa-build/config/routes.rb

330 lines
12 KiB
Ruby
Raw Normal View History

2012-01-30 20:39:34 +00:00
# -*- encoding : utf-8 -*-
2011-03-09 13:13:36 +00:00
Rosa::Application.routes.draw do
resource :contact, :only => [:new, :create, :sended] do
get '/' => 'contacts#new'
get :sended
end
devise_scope :users do
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
devise_for :users, :controllers => {:omniauth_callbacks => 'users/omniauth_callbacks'}
namespace :api do
namespace :v1 do
resources :advisories, :only => [:index, :show, :create, :update]
2012-11-21 12:09:01 +00:00
resources :search, :only => [:index]
resources :build_lists, :only => [:index, :create, :show] do
member {
2012-12-26 18:35:13 +00:00
put :publish
put :reject_publish
put :cancel
2013-01-30 20:04:19 +00:00
put :create_container
}
end
2012-10-04 13:45:49 +01:00
resources :arches, :only => [:index]
resources :platforms, :only => [:index, :show, :update, :destroy, :create] do
collection {
get :platforms_for_build
}
member {
get :members
put :add_member
delete :remove_member
post :clone
put :clear
}
2012-11-26 11:32:23 +00:00
resources :maintainers, :only => [ :index ]
end
resources :repositories, :only => [:show, :update, :destroy] do
member {
get :projects
get :key_pair
put :add_member
delete :remove_member
2012-10-14 14:38:06 +01:00
put :add_project
delete :remove_project
put :signatures
}
end
resources :projects, :only => [:index, :show, :update, :create, :destroy] do
collection { get :get_id }
member {
2012-10-17 14:46:16 +01:00
post :fork
get :refs_list
get :members
put :add_member
delete :remove_member
put :update_member
}
resources :build_lists, :only => :index
end
2012-10-15 10:45:00 +01:00
resources :users, :only => [:show]
get 'user' => 'users#show_current_user'
resource :user, :only => [:update] do
member {
get :notifiers
put :notifiers
}
end
2012-10-16 12:49:07 +01:00
resources :groups, :only => [:index, :show, :update, :create, :destroy] do
member {
get :members
put :add_member
delete :remove_member
put :update_member
}
end
resources :products, :only => [:show, :update, :create, :destroy] do
resources :product_build_lists, :only => :index
end
resources :product_build_lists, :only => [:index, :show, :destroy, :create] do
put :cancel, :on => :member
end
end
end
resources :search, :only => [:index]
get '/forbidden' => 'pages#forbidden', :as => 'forbidden'
get '/terms-of-service' => 'pages#tos', :as => 'tos'
get '/tour/:id' => 'pages#tour_inside', :as => 'tour_inside', :id => /projects|sources|builds/
match '/invite.html' => redirect('/register_requests/new')
get '/activity_feeds.:format' => 'activity_feeds#index', :as => 'atom_activity_feeds', :format => /atom/
if APP_CONFIG['anonymous_access']
authenticated do
root :to => 'activity_feeds#index'
2012-01-11 13:58:13 +00:00
end
root :to => 'pages#root'
else
root :to => 'activity_feeds#index'
end
namespace :admin do
resources :users do
2012-12-28 19:24:41 +00:00
collection do
get :list
get :system
end
2012-12-29 12:38:14 +00:00
put :reset_auth_token, :on => :member
end
resources :register_requests, :only => [:index] do
put :update, :on => :collection
member do
get :approve
get :reject
end
end
resources :flash_notifies
resources :event_logs, :only => :index
constraints Rosa::Constraints::AdminAccess do
mount Resque::Server => 'resque'
end
end
resources :advisories, :only => [:index, :show, :search] do
get :search, :on => :collection
end
scope :module => 'platforms' do
resources :platforms do
resources :private_users, :except => [:show, :destroy, :update]
member do
post :clear
get :clone
get :members
post :remove_members # fixme: change post to delete
delete :remove_member
post :add_member
post :make_clone
get :advisories
end
resources :mass_builds, :only => [:create, :index] do
member do
post :cancel
2012-12-06 17:59:17 +00:00
get '/:kind.:format' => "mass_builds#get_list", :as => :get_list, :kind => /failed_builds_list|missed_projects_list|projects_list/
end
2012-06-27 15:06:59 +01:00
end
resources :repositories do
member do
get :add_project
delete :remove_project
get :projects_list
post :remove_members # fixme: change post to delete
delete :remove_member
post :add_member
end
end
2012-07-13 12:18:12 +01:00
resources :key_pairs, :only => [:create, :index, :destroy]
resources :products do
2012-11-09 17:42:25 +00:00
resources :product_build_lists, :only => [:create, :destroy, :new, :show] do
member {
get :log
put :cancel
}
2012-11-09 17:42:25 +00:00
end
2012-11-06 14:13:16 +00:00
collection { get :autocomplete_project }
end
resources :maintainers, :only => [:index]
end
match '/private/:platform_name/*file_path' => 'privates#show'
resources :product_build_lists, :only => [:index]
end
resources :autocompletes, :only => [] do
collection do
get :autocomplete_user_uname
get :autocomplete_group_uname
end
end
scope :module => 'users' do
resources :settings, :only => [] do
collection do
get :profile
put :profile
get :private
put :private
get :notifiers
put :notifiers
end
2011-03-10 14:20:09 +00:00
end
2012-05-18 17:54:57 +01:00
resources :register_requests, :only => [:new, :create], :format => /ru|en/ #view support only two languages
2011-03-10 11:35:46 +00:00
end
2012-04-11 19:29:08 +01:00
scope :module => 'groups' do
get '/groups/new' => 'profile#new' # need to force next route exclude :id => 'new'
get '/groups/:id' => redirect("/%{id}"), :as => :profile_group # override default group show route
resources :groups, :controller => 'profile' do
delete :remove_user, :on => :member
resources :members, :only => [:index] do
collection do
post :add
post :update
delete :remove
end
end
end
end
scope :module => 'projects' do
resources :build_lists, :only => [:index, :show, :update] do
member do
put :cancel
2013-01-25 17:24:46 +00:00
put :create_container
get :log
end
collection { post :search }
end
2012-04-19 18:35:35 +01:00
resources :projects, :only => [:index, :new, :create]
scope ':owner_name/:project_name', :constraints => {:project_name => Project::NAME_REGEXP} do # project
scope :as => 'project' do
resources :wiki do
collection do
match '_history' => 'wiki#wiki_history', :as => :history, :via => :get
match '_access' => 'wiki#git', :as => :git, :via => :get
match '_revert/:sha1/:sha2' => 'wiki#revert_wiki', :as => :revert, :via => [:get, :post]
match '_compare' => 'wiki#compare_wiki', :as => :compare, :via => :post
#match '_compare/:versions' => 'wiki#compare_wiki', :versions => /.*/, :as => :compare_versions, :via => :get
match '_compare/:versions' => 'wiki#compare_wiki', :versions => /([a-f0-9\^]{6,40})(\.\.\.[a-f0-9\^]{6,40})/, :as => :compare_versions, :via => :get
post :preview
get :search
get :pages
end
member do
get :history
get :edit
match 'revert/:sha1/:sha2' => 'wiki#revert', :as => :revert_page, :via => [:get, :post]
match ':ref' => 'wiki#show', :as => :versioned, :via => :get
post :compare
#match 'compare/*versions' => 'wiki#compare', :as => :compare_versions, :via => :get
match 'compare/:versions' => 'wiki#compare', :versions => /([a-f0-9\^]{6,40})(\.\.\.[a-f0-9\^]{6,40})/, :as => :compare_versions, :via => :get
end
end
resources :issues, :except => :edit do
resources :comments, :only => [:edit, :create, :update, :destroy]
resources :subscribes, :only => [:create, :destroy]
collection do
post :create_label
get :search_collaborators
end
end
post "/labels/:label_id" => "issues#destroy_label", :as => :issues_delete_label
post "/labels/:label_id/update" => "issues#update_label", :as => :issues_update_label
resources :build_lists, :only => [:index, :new, :create] do
collection { post :search }
end
resources :collaborators do
get :find, :on => :collection
2012-05-14 18:09:18 +01:00
end
resources :pull_requests, :except => :destroy do
2012-10-03 12:36:04 +01:00
get :autocomplete_to_project, :on => :collection
put :merge, :on => :member
2012-05-17 17:47:36 +01:00
end
2012-08-29 15:58:58 +01:00
post '/preview' => 'projects#preview', :as => 'md_preview'
2012-10-01 17:03:08 +01:00
post 'refs_list' => 'projects#refs_list', :as => 'refs_list'
get '/pull_requests/:issue_id/add_line_comments(.:format)' => "comments#new_line", :as => :new_line_pull_comment
2012-05-10 17:57:59 +01:00
end
# Resource
get '/autocomplete_maintainers' => 'projects#autocomplete_maintainers', :as => :autocomplete_maintainers
get '/modify' => 'projects#edit', :as => :edit_project
put '/' => 'projects#update'
delete '/' => 'projects#destroy'
# Member
post '/fork' => 'projects#fork', :as => :fork_project
get '/sections' => 'projects#sections', :as => :sections_project
post '/sections' => 'projects#sections'
delete '/remove_user' => 'projects#remove_user', :as => :remove_user_project
constraints :treeish => /.+/ do
constraints Rosa::Constraints::Treeish do
# Tree
get '/' => "git/trees#show", :as => :project
get '/tree/:treeish(/*path)' => "git/trees#show", :as => :tree, :format => false
# Commits
get '/commits/:treeish(/*path)' => "git/commits#index", :as => :commits, :format => false
get '/commit/:id(.:format)' => "git/commits#show", :as => :commit
# Commit comments
post '/commit/:commit_id/comments(.:format)' => "comments#create", :as => :project_commit_comments
get '/commit/:commit_id/comments/:id(.:format)' => "comments#edit", :as => :edit_project_commit_comment
put '/commit/:commit_id/comments/:id(.:format)' => "comments#update", :as => :project_commit_comment
delete '/commit/:commit_id/comments/:id(.:format)' => "comments#destroy"
get '/commit/:commit_id/add_line_comments(.:format)' => "comments#new_line", :as => :new_line_commit_comment
# Commit subscribes
post '/commit/:commit_id/subscribe' => "commit_subscribes#create", :as => :subscribe_commit
delete '/commit/:commit_id/unsubscribe' => "commit_subscribes#destroy", :as => :unsubscribe_commit
# Editing files
get '/edit/:treeish/*path' => "git/blobs#edit", :as => :edit_blob, :format => false
put '/edit/:treeish/*path' => "git/blobs#update", :format => false
# Blobs
get '/blob/:treeish/*path' => "git/blobs#show", :as => :blob, :format => false
# Blame
get '/blame/:treeish/*path' => "git/blobs#blame", :as => :blame, :format => false
# Raw
get '/raw/:treeish/*path' => "git/blobs#raw", :as => :raw, :format => false
# Archive
2012-09-20 15:26:26 +01:00
get '/archive/:treeish.:format' => "git/trees#archive", :as => :archive, :format => /zip|tar\.gz/
# Git diff
get '/diff/:commit1(...:commit2)' => "git/commits#diff", :as => :diff
end
2012-07-03 13:05:27 +01:00
end
end
end
scope ':uname' do # project owner profile
constraints Rosa::Constraints::Owner.new(User) do
get '/' => 'users/profile#show', :as => :user
end
constraints Rosa::Constraints::Owner.new(Group, true) do
get '/' => 'groups/profile#show', :as => :group
end
end
2011-03-09 13:13:36 +00:00
end