1
0
Fork 0
forked from gitea/nas

Extract counters from accounts table to account_stats table (#9295)

This commit is contained in:
Eugen Rochko 2018-11-19 00:43:52 +01:00 committed by GitHub
parent 4fdefffb99
commit d6b9a62e0a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 203 additions and 68 deletions

View file

@ -16,11 +16,8 @@ class Follow < ApplicationRecord
include Paginable
include RelationshipCacheable
belongs_to :account, counter_cache: :following_count
belongs_to :target_account,
class_name: 'Account',
counter_cache: :followers_count
belongs_to :account
belongs_to :target_account, class_name: 'Account'
has_one :notification, as: :activity, dependent: :destroy
@ -39,7 +36,9 @@ class Follow < ApplicationRecord
end
before_validation :set_uri, only: :create
after_create :increment_cache_counters
after_destroy :remove_endorsements
after_destroy :decrement_cache_counters
private
@ -50,4 +49,14 @@ class Follow < ApplicationRecord
def remove_endorsements
AccountPin.where(target_account_id: target_account_id, account_id: account_id).delete_all
end
def increment_cache_counters
account&.increment_count!(:following_count)
target_account&.increment_count!(:followers_count)
end
def decrement_cache_counters
account&.decrement_count!(:following_count)
target_account&.decrement_count!(:followers_count)
end
end