summaryrefslogtreecommitdiff
path: root/lib/gitlab/slash_commands/presenters/access.rb
blob: 1a817eb735b913f3cf1dc6e515aaeca006c7fad5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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