diff options
Diffstat (limited to 'lib/gitlab/slash_commands/base_command.rb')
-rw-r--r-- | lib/gitlab/slash_commands/base_command.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/gitlab/slash_commands/base_command.rb b/lib/gitlab/slash_commands/base_command.rb new file mode 100644 index 00000000000..cc3c9a50555 --- /dev/null +++ b/lib/gitlab/slash_commands/base_command.rb @@ -0,0 +1,47 @@ +module Gitlab + module SlashCommands + class BaseCommand + QUERY_LIMIT = 5 + + def self.match(_text) + raise NotImplementedError + end + + def self.help_message + raise NotImplementedError + end + + def self.available?(_project) + raise NotImplementedError + end + + def self.allowed?(_user, _ability) + true + end + + def self.can?(object, action, subject) + Ability.allowed?(object, action, subject) + end + + def execute(_) + raise NotImplementedError + end + + def collection + raise NotImplementedError + end + + attr_accessor :project, :current_user, :params + + def initialize(project, user, params = {}) + @project, @current_user, @params = project, user, params.dup + end + + private + + def find_by_iid(iid) + collection.find_by(iid: iid) + end + end + end +end |