Skip to content
Snippets Groups Projects

Refactor update creation api

Merged Samuel GAIST requested to merge refactor_update_creation_api into master
All threads resolved!
1 file
+ 27
3
Compare changes
  • Side-by-side
  • Inline
@@ -26,6 +26,8 @@
###############################################################################
import copy
import simplejson as json
import difflib
from django.conf import settings
@@ -44,9 +46,6 @@ from .models import Shareable, Versionable, Contribution
from .exceptions import ContributionCreationError
from .fields import JSONSerializerField, StringListField
import simplejson as json
import difflib
# ----------------------------------------------------------
@@ -333,6 +332,31 @@ class ContributionModSerializer(serializers.ModelSerializer):
return super().update(instance, validated_data)
def filter_representation(self, representation):
"""Filter out fields if given in query parameters"""
request = self.context["request"]
fields = request.query_params.get("fields", None)
if fields is not None:
fields = fields.split(",")
to_remove = [key for key in representation.keys() if key not in fields]
for key in to_remove:
representation.pop(key)
# Retrieve the description in HTML format
if "html_description" in fields:
description = self.instance.description
if len(description) > 0:
representation["html_description"] = ensure_html(description)
else:
representation["html_description"] = ""
return representation
def to_representation(self, instance):
representation = super().to_representation(instance)
return self.filter_representation(representation)
# ----------------------------------------------------------
Loading