diff --git a/app/helpers/json_ld_helper.rb b/app/helpers/json_ld_helper.rb index c622fb560e..ccdefb35d8 100644 --- a/app/helpers/json_ld_helper.rb +++ b/app/helpers/json_ld_helper.rb @@ -162,14 +162,14 @@ module JsonLdHelper # @param raise_on_error [Boolean, Symbol<:all, :temporary>] See {#fetch_resource_without_id_validation} for possible values def fetch_resource(uri, id_is_known, on_behalf_of = nil, raise_on_error: false, request_options: {}) unless id_is_known - json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error) + json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error: raise_on_error) return if !json.is_a?(Hash) || unsupported_uri_scheme?(json['id']) uri = json['id'] end - json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error, request_options: request_options) + json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error: raise_on_error, request_options: request_options) json.present? && json['id'] == uri ? json : nil end @@ -190,7 +190,7 @@ module JsonLdHelper # - +:temporary+ - raise if the response code is not an "unsalvageable error" like a 404 # (see {#response_error_unsalvageable} ) # - +false+ - do not raise, return +nil+ - def fetch_resource_without_id_validation(uri, on_behalf_of = nil, raise_on_error = false, request_options: {}) + def fetch_resource_without_id_validation(uri, on_behalf_of = nil, raise_on_error: false, request_options: {}) on_behalf_of ||= Account.representative build_request(uri, on_behalf_of, options: request_options).perform do |response| diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb index 22df507847..25c62f3be6 100644 --- a/app/services/activitypub/fetch_featured_collection_service.rb +++ b/app/services/activitypub/fetch_featured_collection_service.rb @@ -33,7 +33,7 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService return collection_or_uri if collection_or_uri.is_a?(Hash) return if non_matching_uri_hosts?(@account.uri, collection_or_uri) - fetch_resource_without_id_validation(collection_or_uri, local_follower, :temporary) + fetch_resource_without_id_validation(collection_or_uri, local_follower, raise_on_error: :temporary) end def process_items(items) diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb index 4fc520ff53..ec2422a075 100644 --- a/app/services/activitypub/fetch_featured_tags_collection_service.rb +++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb @@ -45,7 +45,7 @@ class ActivityPub::FetchFeaturedTagsCollectionService < BaseService return collection_or_uri if collection_or_uri.is_a?(Hash) return if non_matching_uri_hosts?(@account.uri, collection_or_uri) - fetch_resource_without_id_validation(collection_or_uri, local_follower, :temporary) + fetch_resource_without_id_validation(collection_or_uri, local_follower, raise_on_error: :temporary) end def process_items(items) diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index bae4185e47..69480f16d6 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -83,7 +83,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService def fetch_status(uri, id_is_known, on_behalf_of = nil) begin - fetch_resource(uri, id_is_known, on_behalf_of, true) + fetch_resource(uri, id_is_known, on_behalf_of, raise_on_error: true) rescue Mastodon::UnexpectedResponseError => e return unless e.response.code == 404 diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb index ddec4b64ec..72b9c0f5a6 100644 --- a/app/services/activitypub/fetch_replies_service.rb +++ b/app/services/activitypub/fetch_replies_service.rb @@ -62,11 +62,11 @@ class ActivityPub::FetchRepliesService < BaseService # # Therefore, retry with correct signatures if this fails. begin - fetch_resource_without_id_validation(collection_or_uri, nil, :temporary) + fetch_resource_without_id_validation(collection_or_uri, nil, raise_on_error: :temporary) rescue Mastodon::UnexpectedResponseError => e raise unless e.response && e.response.code == 401 && Addressable::URI.parse(collection_or_uri).query.present? - fetch_resource_without_id_validation(collection_or_uri, nil, :temporary, request_options: { omit_query_string: false }) + fetch_resource_without_id_validation(collection_or_uri, nil, raise_on_error: :temporary, request_options: { omit_query_string: false }) end end diff --git a/app/services/activitypub/synchronize_followers_service.rb b/app/services/activitypub/synchronize_followers_service.rb index 46c12b00fa..b01974dcc6 100644 --- a/app/services/activitypub/synchronize_followers_service.rb +++ b/app/services/activitypub/synchronize_followers_service.rb @@ -69,6 +69,6 @@ class ActivityPub::SynchronizeFollowersService < BaseService return collection_or_uri if collection_or_uri.is_a?(Hash) return if non_matching_uri_hosts?(@account.uri, collection_or_uri) - fetch_resource_without_id_validation(collection_or_uri, nil, :temporary) + fetch_resource_without_id_validation(collection_or_uri, nil, raise_on_error: :temporary) end end