summaryrefslogtreecommitdiff
path: root/lib/gitlab/slash_commands/presenters/help.rb
blob: ea611a4d629b81ac24c5fecbb94d8f7203fc7508 (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
module Gitlab
  module SlashCommands
    module Presenters
      class Help < Presenters::Base
        def present(trigger, text)
          ephemeral_response(text: help_message(trigger, text))
        end

        private

        def help_message(trigger, text)
          return "No commands available :thinking_face:" unless @resource.present?

          if text.start_with?('help')
            header_with_list("Available commands", full_commands(trigger))
          else
            header_with_list("Unknown command, these commands are available", full_commands(trigger)) 
          end
        end

        def full_commands(trigger)
          @resource.map { |command| "#{trigger} #{command.help_message}" }
        end
      end
    end
  end
end