Merge pull request #766 from writefreely/fix-ld-json-response

Correctly respond to application/ld+json requests
This commit is contained in:
Matt Baer 2023-09-21 17:03:18 -04:00 committed by GitHub
commit 94bb566e4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 4 deletions

View File

@ -496,8 +496,7 @@ func apiCheckCollectionPermissions(app *App, r *http.Request, c *Collection) (in
// fetchCollection handles the API endpoint for retrieving collection data.
func fetchCollection(app *App, w http.ResponseWriter, r *http.Request) error {
accept := r.Header.Get("Accept")
if strings.Contains(accept, "application/activity+json") {
if IsActivityPubRequest(r) {
return handleFetchCollectionActivities(app, w, r)
}

View File

@ -1119,8 +1119,7 @@ func fetchPost(app *App, w http.ResponseWriter, r *http.Request) error {
p.extractData()
accept := r.Header.Get("Accept")
if strings.Contains(accept, "application/activity+json") {
if IsActivityPubRequest(r) {
if coll == nil {
// This is a draft post; 404 for now
// TODO: return ActivityObject

View File

@ -13,6 +13,7 @@ package writefreely
import (
"mime"
"net/http"
"strings"
)
func IsJSON(r *http.Request) bool {
@ -20,3 +21,9 @@ func IsJSON(r *http.Request) bool {
accept := r.Header.Get("Accept")
return ct == "application/json" || accept == "application/json"
}
func IsActivityPubRequest(r *http.Request) bool {
accept := r.Header.Get("Accept")
return strings.Contains(accept, "application/activity+json") ||
accept == "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\""
}