|
- class Api::Pm::IssueLinksController < Api::Pm::BaseController
- before_action :load_project
- before_action :load_issue
- def index
- @links = PmLink.where(be_linkable_id: @issue.id,be_linkable_type: 'Issue').or(PmLink.where(linkable_id: @issue.id,linkable_type: 'Issue'))
- end
-
- def create
- begin
- ActiveRecord::Base.transaction do
- params[:link_ids].each do |e|
- @issue.pm_links.find_or_create_by!(be_linkable_type: 'Issue', be_linkable_id: e)
- tag_issue = Issue.find_by_id(e)
- next unless tag_issue.present?
- journal = tag_issue.journals.create!({user_id: current_user.id})
- journal.journal_details.create!({property: "tag_link_issue", prop_key: "1", value: @issue.id.to_s})
- end
- journal = @issue.journals.create!({user_id: current_user.id})
- journal.journal_details.create!({property: "tag_link_issue", prop_key: "#{params[:link_ids].size}", value: params[:link_ids].join(",")})
- end
- render_ok
- rescue
- render_error('创建失败!')
- end
- end
-
- def destroy
- begin
- ActiveRecord::Base.transaction do
- @links = PmLink.where(be_linkable_id: @issue.id, be_linkable_type: 'Issue', linkable_id: params[:id], linkable_type: 'Issue').or(PmLink.where(linkable_id: @issue.id, linkable_type: 'Issue', be_linkable_id: params[:id], be_linkable_type: 'Issue'))
- journal = @issue.journals.create!({user_id: current_user.id})
- journal.journal_details.create!({property: "tag_link_issue", prop_key: "1", old_value: params[:id].to_s})
- another_issue = Issue.find_by_id(params[:id])
- if another_issue.present?
- journal = another_issue.journals.create!({user_id: current_user.id})
- journal.journal_details.create!({property: "tag_link_issue", prop_key: "1", old_value: @issue.id.to_s})
- end
- @link = @links.last
- @link.destroy!
- end
- render_ok
- rescue
- render_error('删除失败!')
- end
- end
- end
|