diff options
Diffstat (limited to 'lib/gitlab/slash_commands/presenters/access.rb')
-rw-r--r-- | lib/gitlab/slash_commands/presenters/access.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/gitlab/slash_commands/presenters/access.rb b/lib/gitlab/slash_commands/presenters/access.rb new file mode 100644 index 00000000000..1a817eb735b --- /dev/null +++ b/lib/gitlab/slash_commands/presenters/access.rb @@ -0,0 +1,40 @@ +module Gitlab + module SlashCommands + module Presenters + class Access < Presenters::Base + def access_denied + ephemeral_response(text: "Whoops! This action is not allowed. This incident will be [reported](https://xkcd.com/838/).") + end + + def not_found + ephemeral_response(text: "404 not found! GitLab couldn't find what you were looking for! :boom:") + end + + def authorize + message = + if @resource + ":wave: Hi there! Before I do anything for you, please [connect your GitLab account](#{@resource})." + else + ":sweat_smile: Couldn't identify you, nor can I autorize you!" + end + + ephemeral_response(text: message) + end + + def unknown_command(commands) + ephemeral_response(text: help_message(trigger)) + end + + private + + def help_message(trigger) + header_with_list("Command not found, these are the commands you can use", full_commands(trigger)) + end + + def full_commands(trigger) + @resource.map { |command| "#{trigger} #{command.help_message}" } + end + end + end + end +end |