mirror of
https://github.com/manyfold3d/manyfold.git
synced 2026-10-22 03:32:18 -05:00
41 lines
989 B
Ruby
41 lines
989 B
Ruby
module FederailsCommon
|
|
extend ActiveSupport::Concern
|
|
include Federails::ActorEntity
|
|
|
|
included do
|
|
scope :local, -> { includes(:federails_actor).where("federails_actor.local": true) }
|
|
scope :remote, -> { includes(:federails_actor).where("federails_actor.local": false) }
|
|
end
|
|
|
|
# Listed in increasing order of priority
|
|
FEDIVERSE_USERNAMES = {
|
|
collection: :public_id,
|
|
model: :public_id,
|
|
creator: :slug,
|
|
user: :username,
|
|
list: :public_id
|
|
}
|
|
|
|
def federails_actor
|
|
return nil unless DatabaseDetector.table_ready? "federails_actors"
|
|
return nil unless persisted?
|
|
act = Federails::Actor.find_by(entity: self)
|
|
if act.nil?
|
|
act = create_federails_actor
|
|
reload
|
|
end
|
|
act
|
|
rescue NoMethodError, ActiveRecord::StatementInvalid
|
|
# Just return nil if we get errors from not running on fully-migrated data
|
|
nil
|
|
end
|
|
|
|
def local?
|
|
federails_actor ? federails_actor.local? : true
|
|
end
|
|
|
|
def remote?
|
|
!local?
|
|
end
|
|
end
|