mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-19 19:25:57 +08:00
Merge branch 'develop' into standalone_develop
This commit is contained in:
46
app/controllers/api/v1/project_topics_controller.rb
Normal file
46
app/controllers/api/v1/project_topics_controller.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
class Api::V1::ProjectTopicsController < Api::V1::BaseController
|
||||
|
||||
def index
|
||||
@project_topics = ProjectTopic
|
||||
@project_topics = @project_topics.ransack(name_cont: params[:keyword]) if params[:keyword].present?
|
||||
@project_topics = @project_topics.includes(:projects)
|
||||
@project_topics = kaminary_select_paginate(@project_topics)
|
||||
end
|
||||
|
||||
def create
|
||||
ActiveRecord::Base.transaction do
|
||||
@project = Project.find_by_id(create_params[:project_id])
|
||||
return render_not_found unless @project.present?
|
||||
return render_error("请输入项目搜索标签名称.") unless create_params[:name].present?
|
||||
|
||||
@project_topic = ProjectTopic.find_or_create_by!(name: create_params[:name].downcase)
|
||||
@project_topic_ralate = @project_topic.project_topic_ralates.find_or_create_by!(project_id: create_params[:project_id])
|
||||
|
||||
if @project_topic.present? && @project_topic_ralate.present?
|
||||
render_ok
|
||||
else
|
||||
render_error("项目关联搜索标签失败.")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
ActiveRecord::Base.transaction do
|
||||
@project = Project.find_by_id(create_params[:project_id])
|
||||
return render_not_found unless @project.present?
|
||||
|
||||
@project_topic = ProjectTopic.find_by_id(params[:id])
|
||||
@project_topic_ralate = @project_topic.project_topic_ralates.find_by(project_id: @project.id)
|
||||
if @project_topic_ralate.destroy!
|
||||
render_ok
|
||||
else
|
||||
render_error("项目取消关联搜索标签失败.")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def create_params
|
||||
params.permit(:project_id, :name)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user