gab-social/app/models/group_account.rb

44 lines
1.0 KiB
Ruby
Raw Normal View History

2019-07-02 08:10:25 +01:00
# == Schema Information
#
# Table name: group_accounts
#
# id :bigint(8) not null, primary key
# group_id :bigint(8) not null
# account_id :bigint(8) not null
# write_permissions :boolean default(FALSE), not null
# role :string
# created_at :datetime not null
# updated_at :datetime not null
#
class GroupAccount < ApplicationRecord
2020-05-10 04:57:38 +01:00
self.ignored_columns = ["unread_count"]
enum role: {
admin: "admin",
moderator: "moderator"
}
2019-07-02 08:10:25 +01:00
belongs_to :group
belongs_to :account
validates :account_id, uniqueness: { scope: :group_id }
2019-07-15 15:29:54 +01:00
after_commit :remove_relationship_cache
2019-07-22 01:46:00 +01:00
after_create :increment_member_count
after_destroy :decrement_member_count
2019-07-15 15:29:54 +01:00
private
def remove_relationship_cache
Rails.cache.delete("relationship:#{account_id}:group#{group_id}")
end
2019-07-22 01:46:00 +01:00
def increment_member_count
group&.increment!(:member_count)
end
def decrement_member_count
group&.decrement!(:member_count)
end
2019-07-02 08:10:25 +01:00
end