Browse Source

新增:项目标记接口

pull/342/head
yystopf 3 years ago
parent
commit
fe972f1141
4 changed files with 35 additions and 0 deletions
  1. +27
    -0
      app/controllers/api/v1/issues/issue_tags_controller.rb
  2. +1
    -0
      app/views/api/v1/issues/issue_tags/_simple_detail.json.jbuilder
  3. +6
    -0
      app/views/api/v1/issues/issue_tags/index.json.jbuilder
  4. +1
    -0
      config/routes/api.rb

+ 27
- 0
app/controllers/api/v1/issues/issue_tags_controller.rb View File

@@ -0,0 +1,27 @@
class Api::V1::Issues::IssueTagsController < Api::V1::BaseController

before_action :require_public_and_member_above, only: [:index]

def index
@issue_tags = @project.issue_tags.order("#{order_by} #{order_direction}")
if params[:only_name]
@issue_tags = kaminary_select_paginate(@issue_tags.select(:id, :name))
else
@issue_tags = kaminari_paginate(@issue_tags)
end
end


private
def order_by
order_by = params.fetch(:order_by, "created_at")
order_by = IssueTag.column_names.include?(order_by) ? order_by : "created_at"
order_by
end

def order_direction
order_direction = params.fetch(:order_direction, "desc").downcase
order_direction = %w(desc asc).include?(order_direction) ? order_direction : "desc"
order_direction
end
end

+ 1
- 0
app/views/api/v1/issues/issue_tags/_simple_detail.json.jbuilder View File

@@ -0,0 +1 @@
json.(tag, :id, :name)

+ 6
- 0
app/views/api/v1/issues/issue_tags/index.json.jbuilder View File

@@ -0,0 +1,6 @@
json.total_count @issue_tags.total_count
json.issue_tags @issue_tags.each do |tag|
if params[:only_name]
json.partial! "simple_detail", locals: {tag: tag}
end
end

+ 1
- 0
config/routes/api.rb View File

@@ -29,6 +29,7 @@ defaults format: :json do
scope module: :projects do
resources :issues
scope module: :issues do
resources :issue_tags, only: [:index]
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'


Loading…
Cancel
Save