diaspora/lib/archive_importer/entity_importer.rb
2019-05-21 23:08:34 +02:00

30 lines
775 B
Ruby

# frozen_string_literal: true
class ArchiveImporter
class EntityImporter
include ArchiveValidator::EntitiesHelper
include Diaspora::Logging
def initialize(json, user)
@json = json
@user = user
end
def import
self.persisted_object = Diaspora::Federation::Receive.perform(entity, skip_relaying: true)
rescue DiasporaFederation::Entities::Signable::SignatureVerificationFailed,
DiasporaFederation::Discovery::InvalidDocument,
DiasporaFederation::Discovery::DiscoveryError,
ActiveRecord::RecordInvalid => e
logger.warn "#{self}: #{e}"
end
attr_reader :json
attr_reader :user
attr_accessor :persisted_object
def entity
entity_class.from_json(json)
end
end
end