5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-23 00:36:21 +00:00

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)
This commit is contained in:
f 2024-03-06 17:15:21 -03:00
parent 5f5b929aa8
commit 2e04bc8eac
No known key found for this signature in database
4 changed files with 8 additions and 2 deletions

View file

@ -20,6 +20,8 @@ class ActivityPub
has_one :object, through: :activity_pub has_one :object, through: :activity_pub
validates :activity_pub_id, presence: true validates :activity_pub_id, presence: true
# Las actividades son únicas con respecto a su estado
validates :uri, presence: true, uniqueness: { scope: :activity_pub_id, message: 'estado duplicado' }
# Siempre en orden descendiente para saber el último estado # Siempre en orden descendiente para saber el último estado
default_scope -> { order(created_at: :desc) } default_scope -> { order(created_at: :desc) }

View file

@ -15,6 +15,9 @@ class ActivityPub
has_many :activities has_many :activities
has_many :remote_flags has_many :remote_flags
# Les actores son únicxs a toda la base de datos
validates :uri, presence: true, uniqueness: true
# Obtiene el nombre de la Actor como mención, solo si obtuvimos el # Obtiene el nombre de la Actor como mención, solo si obtuvimos el
# contenido de antemano. # contenido de antemano.
# #

View file

@ -6,8 +6,6 @@ class ActivityPub
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do included do
validates :uri, presence: true, uniqueness: true
# Cuando asignamos contenido, obtener la URI si no lo hicimos ya # Cuando asignamos contenido, obtener la URI si no lo hicimos ya
before_save :uri_from_content!, unless: :uri? before_save :uri_from_content!, unless: :uri?

View file

@ -5,6 +5,9 @@ class ActivityPub
class Object < ApplicationRecord class Object < ApplicationRecord
include ActivityPub::Concerns::JsonLdConcern include ActivityPub::Concerns::JsonLdConcern
# Los objetos son únicos a toda la base de datos
validates :uri, presence: true, uniqueness: true
has_many :activity_pubs, as: :object has_many :activity_pubs, as: :object
# Encontrar le Actor por su relación con el objeto # Encontrar le Actor por su relación con el objeto