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:
parent
5f5b929aa8
commit
2e04bc8eac
4 changed files with 8 additions and 2 deletions
|
@ -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) }
|
||||||
|
|
|
@ -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.
|
||||||
#
|
#
|
||||||
|
|
|
@ -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?
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue