28 lines
597 B
Ruby
28 lines
597 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class NamespaceOnboardingAction < ApplicationRecord
|
||
|
belongs_to :namespace, optional: false
|
||
|
|
||
|
validates :action, presence: true
|
||
|
|
||
|
ACTIONS = {
|
||
|
subscription_created: 1,
|
||
|
git_write: 2,
|
||
|
merge_request_created: 3,
|
||
|
git_read: 4,
|
||
|
user_added: 6
|
||
|
}.freeze
|
||
|
|
||
|
enum action: ACTIONS
|
||
|
|
||
|
class << self
|
||
|
def completed?(namespace, action)
|
||
|
where(namespace: namespace, action: action).exists?
|
||
|
end
|
||
|
|
||
|
def create_action(namespace, action)
|
||
|
NamespaceOnboardingAction.safe_find_or_create_by(namespace: namespace, action: action)
|
||
|
end
|
||
|
end
|
||
|
end
|