Rename presenters for consitency
This commit is contained in:
parent
4ce1a17c97
commit
5ec214b0a5
|
|
@ -3,7 +3,7 @@ module Gitlab
|
|||
class Command < BaseCommand
|
||||
COMMANDS = [
|
||||
Gitlab::ChatCommands::IssueShow,
|
||||
Gitlab::ChatCommands::IssueCreate,
|
||||
Gitlab::ChatCommands::IssueNew,
|
||||
Gitlab::ChatCommands::IssueSearch,
|
||||
Gitlab::ChatCommands::Deploy,
|
||||
].freeze
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module Gitlab
|
||||
module ChatCommands
|
||||
class IssueCreate < IssueCommand
|
||||
class IssueNew < IssueCommand
|
||||
def self.match(text)
|
||||
# we can not match \n with the dot by passing the m modifier as than
|
||||
# the title and description are not seperated
|
||||
|
|
@ -21,10 +21,10 @@ module Gitlab
|
|||
|
||||
issue = create_issue(title: title, description: description)
|
||||
|
||||
if issue.errors.any?
|
||||
presenter(issue).display_errors
|
||||
else
|
||||
if issue.persisted?
|
||||
presenter(issue).present
|
||||
else
|
||||
presenter(issue).display_errors
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def presenter(issue)
|
||||
Gitlab::ChatCommands::Presenters::NewIssue.new(issue)
|
||||
Gitlab::ChatCommands::Presenters::IssueNew.new(issue)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -12,12 +12,10 @@ module Gitlab
|
|||
def execute(match)
|
||||
issues = collection.search(match[:query]).limit(QUERY_LIMIT)
|
||||
|
||||
if issues.none?
|
||||
Presenters::Access.new(issues).not_found
|
||||
elsif issues.one?
|
||||
Presenters::ShowIssue.new(issues.first).present
|
||||
if issues.present?
|
||||
Presenters::IssueSearch.new(issues).present
|
||||
else
|
||||
Presenters::ListIssues.new(issues).present
|
||||
Presenters::Access.new(issues).not_found
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ module Gitlab
|
|||
issue = find_by_iid(match[:iid])
|
||||
|
||||
if issue
|
||||
Gitlab::ChatCommands::Presenters::ShowIssue.new(issue).present
|
||||
Gitlab::ChatCommands::Presenters::IssueShow.new(issue).present
|
||||
else
|
||||
Gitlab::ChatCommands::Presenters::Access.new.not_found
|
||||
end
|
||||
|
|
|
|||
|
|
@ -15,14 +15,6 @@ module Gitlab
|
|||
def too_many_actions
|
||||
ephemeral_response(text: "Too many actions defined")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def resource_url
|
||||
polymorphic_url(
|
||||
[ @resource.project.namespace.becomes(Namespace), @resource.project, @resource]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ module Gitlab
|
|||
private
|
||||
|
||||
def help_message(trigger)
|
||||
if @resource.none?
|
||||
"No commands available :thinking_face:"
|
||||
else
|
||||
if @resource.present?
|
||||
header_with_list("Available commands", full_commands(trigger))
|
||||
else
|
||||
"No commands available :thinking_face:"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
module Gitlab
|
||||
module ChatCommands
|
||||
module Presenters
|
||||
class Issuable < Presenters::Base
|
||||
private
|
||||
|
||||
module Issuable
|
||||
def color(issuable)
|
||||
issuable.open? ? '#38ae67' : '#d22852'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
module Gitlab
|
||||
module ChatCommands
|
||||
module Presenters
|
||||
class NewIssue < Presenters::Issuable
|
||||
class IssueNew < Presenters::Base
|
||||
include Presenters::Issuable
|
||||
|
||||
def present
|
||||
in_channel_response(show_issue)
|
||||
in_channel_response(new_issue)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def show_issue
|
||||
def new_issue
|
||||
{
|
||||
attachments: [
|
||||
{
|
||||
|
|
@ -33,6 +35,10 @@ module Gitlab
|
|||
"I opened an issue on behalf on #{author_profile_link}: *#{@resource.to_reference}* from #{project.name_with_namespace}"
|
||||
end
|
||||
|
||||
def project_link
|
||||
"[#{project.name_with_namespace}](#{url_for(project)})"
|
||||
end
|
||||
|
||||
def author_profile_link
|
||||
"[#{author.to_reference}](#{url_for(author)})"
|
||||
end
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
module Gitlab
|
||||
module ChatCommands
|
||||
module Presenters
|
||||
class ListIssues < Presenters::Issuable
|
||||
class IssueSearch < Presenters::Base
|
||||
include Presenters::Issuable
|
||||
|
||||
def present
|
||||
text = if @resource.count >= 5
|
||||
"Here are the first 5 issues I found:"
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
module Gitlab
|
||||
module ChatCommands
|
||||
module Presenters
|
||||
class ShowIssue < Presenters::Issuable
|
||||
class IssueShow < Presenters::Base
|
||||
include Presenters::Issuable
|
||||
|
||||
def present
|
||||
in_channel_response(show_issue)
|
||||
end
|
||||
|
|
@ -16,7 +18,7 @@ module Gitlab
|
|||
title_link: resource_url,
|
||||
author_name: author.name,
|
||||
author_icon: author.avatar_url,
|
||||
fallback: "New issue #{@resource.to_reference}: #{@resource.title}",
|
||||
fallback: "Issue #{@resource.to_reference}: #{@resource.title}",
|
||||
pretext: pretext,
|
||||
text: text,
|
||||
color: color(@resource),
|
||||
|
|
@ -1,11 +1,7 @@
|
|||
module Mattermost
|
||||
class Command < Client
|
||||
def create(params)
|
||||
<<<<<<< HEAD
|
||||
response = session_post("/api/v3/teams/#{params[:team_id]}/commands/create",
|
||||
=======
|
||||
response = json_post("/api/v3/teams/#{params[:team_id]}/commands/create",
|
||||
>>>>>>> Revert removing of some files
|
||||
body: params.to_json)
|
||||
|
||||
response['token']
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ describe Gitlab::ChatCommands::Command, service: true do
|
|||
context 'IssueCreate is triggered' do
|
||||
let(:params) { { text: 'issue create my title' } }
|
||||
|
||||
it { is_expected.to eq(Gitlab::ChatCommands::IssueCreate) }
|
||||
it { is_expected.to eq(Gitlab::ChatCommands::IssueNew) }
|
||||
end
|
||||
|
||||
context 'IssueSearch is triggered' do
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::ChatCommands::IssueCreate, service: true do
|
||||
describe Gitlab::ChatCommands::IssueNew, service: true do
|
||||
describe '#execute' do
|
||||
let(:project) { create(:empty_project) }
|
||||
let(:user) { create(:user) }
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::ChatCommands::Presenters::IssueNew do
|
||||
let(:project) { create(:empty_project) }
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
let(:attachment) { subject[:attachments].first }
|
||||
|
||||
subject { described_class.new(issue).present }
|
||||
|
||||
it { is_expected.to be_a(Hash) }
|
||||
|
||||
it 'shows the issue' do
|
||||
expect(subject[:response_type]).to be(:in_channel)
|
||||
expect(subject).to have_key(:attachments)
|
||||
expect(attachment[:title]).to start_with(issue.title)
|
||||
end
|
||||
end
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::ChatCommands::Presenters::ListIssues do
|
||||
describe Gitlab::ChatCommands::Presenters::IssueSearch do
|
||||
let(:project) { create(:empty_project) }
|
||||
let(:message) { subject[:text] }
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::ChatCommands::Presenters::ShowIssue do
|
||||
describe Gitlab::ChatCommands::Presenters::IssueShow do
|
||||
let(:project) { create(:empty_project) }
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
let(:attachment) { subject[:attachments].first }
|
||||
Loading…
Reference in New Issue