| @@ -20,10 +20,19 @@ class Api::V1::BaseController < ApplicationController | |||||
| # User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token | # User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token | ||||
| # end | # end | ||||
| # end | # end | ||||
| def kaminary_select_paginate(relation) | |||||
| limit = params[:limit] || params[:per_page] | |||||
| limit = (limit.to_i.zero? || limit.to_i > 100) ? 100 : limit.to_i | |||||
| page = params[:page].to_i.zero? ? 1 : params[:page].to_i | |||||
| relation.page(page).per(limit) | |||||
| end | |||||
| def limit | def limit | ||||
| params.fetch(:limit, 15) | params.fetch(:limit, 15) | ||||
| end | end | ||||
| def page | def page | ||||
| params.fetch(:page, 1) | params.fetch(:page, 1) | ||||
| end | end | ||||
| @@ -0,0 +1,9 @@ | |||||
| class Api::V1::Issues::AuthorsController < Api::V1::BaseController | |||||
| before_action :require_public_and_member_above, only: [:index] | |||||
| # 发布人列表 | |||||
| def index | |||||
| @authors = User.joins(issues: :project).where(projects: {id: @project&.id}) | |||||
| @authors = kaminary_select_paginate(@authors) | |||||
| end | |||||
| end | |||||
| @@ -0,0 +1,10 @@ | |||||
| class Api::V1::Issues::StatuesController < Api::V1::BaseController | |||||
| before_action :require_public_and_member_above, only: [:index] | |||||
| # 状态列表 | |||||
| def index | |||||
| @statues = IssueStatus.order("position asc") | |||||
| @statues = kaminary_select_paginate(@statues) | |||||
| end | |||||
| end | |||||
| @@ -0,0 +1,4 @@ | |||||
| json.total_count @authors.total_count | |||||
| json.authors @authors.each do |author| | |||||
| json.partial! 'api/v1/users/simple_user', locals: { user: author} | |||||
| end | |||||
| @@ -0,0 +1,4 @@ | |||||
| json.total_count @statues.total_count | |||||
| json.statues @statues.each do |status| | |||||
| json.(status, :id, :name) | |||||
| end | |||||
| @@ -28,6 +28,13 @@ defaults format: :json do | |||||
| # projects文件夹下的 | # projects文件夹下的 | ||||
| scope module: :projects do | scope module: :projects do | ||||
| resources :issues | resources :issues | ||||
| scope module: :issues do | |||||
| 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' | |||||
| end | |||||
| resources :pulls, module: 'pulls' do | resources :pulls, module: 'pulls' do | ||||
| resources :versions, only: [:index] do | resources :versions, only: [:index] do | ||||
| member do | member do | ||||
| @@ -38,7 +45,6 @@ defaults format: :json do | |||||
| resources :reviews, only: [:index, :create] | resources :reviews, only: [:index, :create] | ||||
| end | end | ||||
| resources :versions | |||||
| resources :release_versions | resources :release_versions | ||||
| resources :webhooks do | resources :webhooks do | ||||
| member do | member do | ||||