defaults format: :json do namespace :api do namespace :pm do resources :issues do collection do patch :batch_update delete :batch_destroy get :priorities get :tags get :statues end member do get :link_index end resources :issue_links resources :journals do member do get :children_journals end end end resources :sprint_issues, only: [:index] do collection do get :statistics end end resources :projects do collection do get :convert get :issues_count end end end namespace :v1 do resources :users, only: [:index] do collection do post :check_user_id post :check_user_login end end scope ':owner' do resource :users, path: '/', only: [:update, :edit, :destroy] do collection do get :send_email_vefify_code post :check_password post :check_email post :check_email_verify_code post :check_phone_verify_code patch :update_email patch :update_phone end end scope module: :users do resources :projects, only: [:index] resources :feedbacks, only: [:create] resources :openkylin_sign, only: [:create] do collection do get :competitions end end end scope ':repo', constraints: { repo: /[^\/]+/ } do # projects resource :projects, path: '/', only: [:show, :update, :edit] do collection do get :compare get :blame end end resources :issues, param: :index, except: [:new, :edit] do collection do patch :batch_update delete :batch_destroy post :pm_create end member do resources :journals, module: :issues, only: [:index, :create, :update, :destroy] do member do get :children_journals end end end end scope module: :issues do resources :issue_tags, except: [:new, :edit] resources :milestones, except: [:new, :edit] resources :issue_statues, only: [:index], controller: '/api/v1/issues/statues' resources :issue_authors, only: [:index], controller: '/api/v1/issues/authors' resources :issue_assigners, only: [:index], controller: '/api/v1/issues/assigners' resources :issue_priorities, only: [:index] end # projects文件夹下的 scope module: :projects do resources :pulls, module: 'pulls' do resources :versions, only: [:index] do member do get :diff end end resources :journals, except: [:show, :edit] resources :reviews, only: [:index, :create] end resources :collaborators, only: [:index] resources :release_versions resources :webhooks do member do post :tests get :hooktasks end end resources :branches, param: :name, only:[:index, :create, :destroy] do collection do get :all patch :update_default_branch end end match 'branches/*name', to: "branches#destroy", via: :all resources :tags, param: :name, only: [:index, :destroy] match 'tags/*name', to: "tags#destroy", via: :all resources :commits, only: [:index] resources :code_stats, only: [:index] resources :contributors, only: [:index] do collection do get :stat end end get '/commits/:sha/diff', to: 'commits#diff' get '/git/blobs/:sha', to: 'git#blobs' get '/git/trees/:sha', to: 'git#trees' resources :contents, only: [:index] do collection do post :batch end end end end end resources :projects, only: [:index] resources :project_topics, only: [:index, :create, :destroy] end end end