Create a ActivitypubResponse class and use it in the views

This improves compatibility with other fediverse software by using the
expected content type for any api calls.
This commit is contained in:
Renato "Lond" Cerqueira
2020-12-30 11:12:04 +01:00
parent 26c0880fe4
commit 44a8184f72
3 changed files with 30 additions and 18 deletions

View File

@ -0,0 +1,18 @@
from django.http import JsonResponse
from .base_activity import ActivityEncoder
class ActivitypubResponse(JsonResponse):
"""
A class to be used in any place that's serializing responses for
Activitypub enabled clients. Uses JsonResponse under the hood, but already
configures some stuff beforehand. Made to be a drop-in replacement of
JsonResponse.
"""
def __init__(self, data, encoder=ActivityEncoder, safe=True,
json_dumps_params=None, **kwargs):
if 'content_type' not in kwargs:
kwargs['content_type'] = 'application/activity+json'
super().__init__(data, encoder, safe, json_dumps_params, **kwargs)