summaryrefslogtreecommitdiff
path: root/app/models/fork_network_member.rb
blob: 36c66f21b0bd14d8a100f3a87711bffb2d54cff7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true

class ForkNetworkMember < ActiveRecord::Base
  belongs_to :fork_network
  belongs_to :project
  belongs_to :forked_from_project, class_name: 'Project'

  validates :fork_network, :project, presence: true

  after_destroy :cleanup_fork_network

  private

  def cleanup_fork_network
    # Explicitly using `#count` makes sure we have the correct number if the
    # relation was loaded in the fork_network.
    fork_network.destroy if fork_network.fork_network_members.count == 0
  end
end