5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-22 22:06:22 +00:00
panel/app/models/activity_pub/concerns/json_ld_concern.rb
f 2e04bc8eac
fix: las actividades están duplicadas con respecto a su estado
por ejemplo, el borrado de une actore puede estar dirigido a todos los
sitios, con lo que se crea varias veces (aunque se ejecuta solo una)
2024-03-06 17:15:21 -03:00

32 lines
789 B
Ruby

# frozen_string_literal: true
class ActivityPub
module Concerns
module JsonLdConcern
extend ActiveSupport::Concern
included do
# Cuando asignamos contenido, obtener la URI si no lo hicimos ya
before_save :uri_from_content!, unless: :uri?
# Obtiene un tipo de actividad a partir del tipo informado
#
# @param object [Hash]
# @return [Activity]
def self.type_from(object)
raise NameError unless object.is_a?(Hash)
"#{model_name.name}::#{object[:type].presence || 'Generic'}".constantize
rescue NameError
model_name.name.constantize::Generic
end
private
def uri_from_content!
self.uri = content[:id]
end
end
end
end
end