gitlab-org--gitlab-foss/lib/gitlab/chat_commands/presenters/issue_search.rb
Z.J. van de Weg 1efa8f2e15 Rename issuable to IssueBase
Given the the Issuable class will soon also have to support MRs this
signals that it can only be used by issues.
2017-02-08 16:42:27 +01:00

47 lines
1.2 KiB
Ruby

module Gitlab
module ChatCommands
module Presenters
class IssueSearch < Presenters::Base
include Presenters::IssueBase
def present
text = if @resource.count >= 5
"Here are the first 5 issues I found:"
elsif @resource.one?
"Here is the only issue I found:"
else
"Here are the #{@resource.count} issues I found:"
end
ephemeral_response(text: text, attachments: attachments)
end
private
def attachments
@resource.map do |issue|
url = "[#{issue.to_reference}](#{url_for([namespace, project, issue])})"
{
color: color(issue),
fallback: "#{issue.to_reference} #{issue.title}",
text: "#{url} · #{issue.title} (#{status_text(issue)})",
mrkdwn_in: [
:text
]
}
end
end
def project
@project ||= @resource.first.project
end
def namespace
@namespace ||= project.namespace.becomes(Namespace)
end
end
end
end
end