Class: ActivityPub::QuoteRequestHandler

Inherits:
Object
  • Object
show all
Defined in:
app/services/activity_pub/quote_request_handler.rb

Class Method Summary collapse

Class Method Details

.handle_quote_request(activity_hash_or_id) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/services/activity_pub/quote_request_handler.rb', line 2

def self.handle_quote_request(activity_hash_or_id)
  real_activity = Fediverse::Request.dereference(activity_hash_or_id)

  quoting_actor = Federails::Actor.find_or_create_by_object real_activity["actor"]

  local_object_route = Federails::Utils::Host.local_route(
    Fediverse::Request.dereference(real_activity["object"])["id"]
  )

  object = case local_object_route[:publishable_type]
  when "comments"
    Comment.find_param(local_object_route[:id])
  end

  quote = Fediverse::Request.dereference(real_activity["instrument"])

  quote_authorization = Federails::QuoteAuthorization.create!(
    quote_request_url: real_activity["id"],
    quoting_actor: quoting_actor,
    interaction_target: object,
    interacting_object_url: quote["id"],
    federails_actor: object.federails_actor
  )

  object&.on_new_quote_request(quote_authorization)
end