* Fix already-known remote private toots not being searchable by URL
Whenever an URL search fails, and an account is provided, try getting a
private status matching that URL from database.
* Fix searching by `id` field instead of `uri`
status = FetchRemoteStatusService.new.call(resource_url, body, protocol)
authorize_with @on_behalf_of, status, :show? unless status.nil?
status
+ elsif fetched_resource.nil? && @on_behalf_of.present?
+ # It may happen that the resource is a private toot, and thus not fetchable,
+ # but we can return the toot if we already know about it.
+ status = Status.find_by(uri: @url) || Status.find_by(url: @url)
+ authorize_with @on_behalf_of, status, :show? unless status.nil?
+ status
end
end