2024-02-21 15:30:01 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Obtiene o actualiza el contenido de un objeto, usando las credenciales
|
|
|
|
# del sitio.
|
|
|
|
#
|
|
|
|
# XXX: Esto usa las credenciales del sitio para volver el objeto
|
|
|
|
# disponible para todo el CMS. Asumimos que el objeto devuelto es el
|
|
|
|
# mismo para todo el mundo y las credenciales solo son para
|
|
|
|
# autenticación.
|
2024-02-21 15:46:38 +00:00
|
|
|
class ActivityPub
|
|
|
|
class FetchJob < ApplicationJob
|
|
|
|
def perform(site:, object:)
|
|
|
|
ActivityPub::Object.transaction do
|
|
|
|
response = site.social_inbox.dereferencer.get(uri: object.uri)
|
2024-02-21 15:30:01 +00:00
|
|
|
|
2024-02-21 15:46:38 +00:00
|
|
|
# @todo Fallar cuando la respuesta no funcione?
|
|
|
|
return unless response.ok?
|
|
|
|
return unless response.miss?
|
2024-02-21 15:32:39 +00:00
|
|
|
|
2024-02-21 15:46:38 +00:00
|
|
|
object.update(content: FastJsonparser.parse(response.body))
|
|
|
|
end
|
2024-02-21 15:30:01 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|