@ -20,6 +20,7 @@ class UnfollowService < BaseService
follow . destroy!
follow . destroy!
create_notification ( follow ) unless @target_account . local?
create_notification ( follow ) unless @target_account . local?
create_reject_notification ( follow ) if @target_account . local? && ! @source_account . local?
UnmergeWorker . perform_async ( @target_account . id , @source_account . id )
UnmergeWorker . perform_async ( @target_account . id , @source_account . id )
follow
follow
end
end
@ -42,6 +43,12 @@ class UnfollowService < BaseService
end
end
end
end
def create_reject_notification ( follow )
# Rejecting an already-existing follow request
return unless follow . account . activitypub?
ActivityPub :: DeliveryWorker . perform_async ( build_reject_json ( follow ) , follow . target_account_id , follow . account . inbox_url )
end
def build_json ( follow )
def build_json ( follow )
ActiveModelSerializers :: SerializableResource . new (
ActiveModelSerializers :: SerializableResource . new (
follow ,
follow ,
@ -50,6 +57,14 @@ class UnfollowService < BaseService
) . to_json
) . to_json
end
end
def build_reject_json ( follow )
ActiveModelSerializers :: SerializableResource . new (
follow ,
serializer : ActivityPub :: RejectFollowSerializer ,
adapter : ActivityPub :: Adapter
) . to_json
end
def build_xml ( follow )
def build_xml ( follow )
OStatus :: AtomSerializer . render ( OStatus :: AtomSerializer . new . unfollow_salmon ( follow ) )
OStatus :: AtomSerializer . render ( OStatus :: AtomSerializer . new . unfollow_salmon ( follow ) )
end
end