From 5733f160026e93af6700660884885eec86bb80eb Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Sat, 3 Oct 2015 19:53:30 +0100 Subject: [PATCH] Refactored detail_url calculation into function --- wagtail/contrib/wagtailapi/serializers.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wagtail/contrib/wagtailapi/serializers.py b/wagtail/contrib/wagtailapi/serializers.py index a06f68399..5a681a54f 100644 --- a/wagtail/contrib/wagtailapi/serializers.py +++ b/wagtail/contrib/wagtailapi/serializers.py @@ -16,6 +16,13 @@ from wagtail.wagtailcore import fields as wagtailcore_fields from .utils import get_full_url, pages_for_site +def get_object_detail_url(context, model, pk): + url_path = context['router'].get_object_detail_urlpath(model, pk) + + if url_path: + return get_full_url(context['request'], url_path) + + class MetaField(Field): """ Serializes the "meta" section of each object. @@ -35,7 +42,7 @@ class MetaField(Field): def to_representation(self, obj): return OrderedDict([ ('type', type(obj)._meta.app_label + '.' + type(obj).__name__), - ('detail_url', get_full_url(self.context['request'], self.context['router'].get_object_detail_urlpath(type(obj), obj.pk))), + ('detail_url', get_object_detail_url(self.context, type(obj), obj.pk)), ]) @@ -55,7 +62,7 @@ class PageMetaField(MetaField): def to_representation(self, page): return OrderedDict([ ('type', page.specific_class._meta.app_label + '.' + page.specific_class.__name__), - ('detail_url', get_full_url(self.context['request'], self.context['router'].get_object_detail_urlpath(type(page), page.pk))), + ('detail_url', get_object_detail_url(self.context, type(page), page.pk)), ]) @@ -74,7 +81,7 @@ class DocumentMetaField(MetaField): def to_representation(self, document): data = OrderedDict([ ('type', "wagtaildocs.Document"), - ('detail_url', get_full_url(self.context['request'], self.context['router'].get_object_detail_urlpath(type(document), document.pk))), + ('detail_url', get_object_detail_url(self.context, type(document), document.pk)), ]) # Add download url