Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Register
Sign in
Toggle navigation
Menu
Open sidebar
Tiger Ton
mastodon
Commits
ce2ee68b
Unverified
Commit
ce2ee68b
authored
6 years ago
by
Eugen Rochko
Committed by
GitHub
6 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Revert "Fix FetchAtomService content type handling (#9132)" (#9171)
This reverts commit
c36a4a16
.
parent
50ce347e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/services/fetch_atom_service.rb
+4
-6
app/services/fetch_atom_service.rb
spec/services/fetch_atom_service_spec.rb
+1
-8
spec/services/fetch_atom_service_spec.rb
with
5 additions
and
14 deletions
+5
-14
app/services/fetch_atom_service.rb
+
4
-
6
View file @
ce2ee68b
...
...
@@ -29,7 +29,7 @@ class FetchAtomService < BaseService
def
perform_request
(
&
block
)
accept
=
'text/html'
accept
=
'application/activity+json, application/ld+json
; profile="https://www.w3.org/ns/activitystreams"
, application/atom+xml, '
+
accept
unless
@unsupported_activity
accept
=
'application/activity+json, application/ld+json, application/atom+xml, '
+
accept
unless
@unsupported_activity
Request
.
new
(
:get
,
@url
).
add_headers
(
'Accept'
=>
accept
).
perform
(
&
block
)
end
...
...
@@ -37,11 +37,9 @@ class FetchAtomService < BaseService
def
process_response
(
response
,
terminal
=
false
)
return
nil
if
response
.
code
!=
200
response_type
=
response
.
headers
[
'Content-type'
]
if
response_type
==
'application/atom+xml'
if
response
.
mime_type
==
'application/atom+xml'
[
@url
,
{
prefetched_body:
response
.
body_with_limit
},
:ostatus
]
elsif
[
'application/activity+json'
,
'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
].
include?
(
response_type
)
elsif
[
'application/activity+json'
,
'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
].
include?
(
response
.
mime
_type
)
body
=
response
.
body_with_limit
json
=
body_to_json
(
body
)
if
supported_context?
(
json
)
&&
equals_or_includes_any?
(
json
[
'type'
],
ActivityPub
::
FetchRemoteAccountService
::
SUPPORTED_TYPES
)
&&
json
[
'inbox'
].
present?
...
...
@@ -57,7 +55,7 @@ class FetchAtomService < BaseService
if
link_header
&
.
find_link
(
%w(rel alternate)
)
process_link_headers
(
link_header
)
elsif
response_type
==
'text/html'
elsif
response
.
mime
_type
==
'text/html'
process_html
(
response
)
end
end
...
...
This diff is collapsed.
Click to expand it.
spec/services/fetch_atom_service_spec.rb
+
1
-
8
View file @
ce2ee68b
...
...
@@ -60,20 +60,13 @@ RSpec.describe FetchAtomService, type: :service do
it
{
is_expected
.
to
eq
[
url
,
{
:prefetched_body
=>
""
},
:ostatus
]
}
end
context
'content_type is
activity+
json'
do
context
'content_type is json'
do
let
(
:content_type
)
{
'application/activity+json'
}
let
(
:body
)
{
json
}
it
{
is_expected
.
to
eq
[
1
,
{
prefetched_body:
body
,
id:
true
},
:activitypub
]
}
end
context
'content_type is ld+json with profile'
do
let
(
:content_type
)
{
'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
}
let
(
:body
)
{
json
}
it
{
is_expected
.
to
eq
[
1
,
{
prefetched_body:
body
,
id:
true
},
:activitypub
]
}
end
before
do
WebMock
.
stub_request
(
:get
,
url
).
to_return
(
status:
200
,
body:
body
,
headers:
headers
)
WebMock
.
stub_request
(
:get
,
'http://example.com/foo'
).
to_return
(
status:
200
,
body:
json
,
headers:
{
'Content-Type'
=>
'application/activity+json'
})
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets