Skip to content

Commit

Permalink
Merge pull request #410 from bounswe/node-get-api-enhancement
Browse files Browse the repository at this point in the history
Update serializers.py
  • Loading branch information
hakanaktas0 authored Nov 10, 2023
2 parents 6c895c3 + 8e0b4fd commit d03bc59
Showing 1 changed file with 42 additions and 6 deletions.
48 changes: 42 additions & 6 deletions project/backend/database/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,47 @@ def create(self, validated_data):

return user

class NodeViewProofSerializer(serializers.ModelSerializer):
class Meta:
model = Proof
fields = ['proof_content', 'publish_date']

class NodeViewTheoremSerializer(serializers.ModelSerializer):
class Meta:
model = Theorem
fields = ['theorem_content', 'publish_date']

class NodeViewBasicUserSerializer(serializers.ModelSerializer):
first_name = serializers.CharField(source='user.first_name', read_only=True)
last_name = serializers.CharField(source='user.last_name', read_only=True)
username = serializers.CharField(source='user.username', read_only=True)
class Meta:
model = BasicUser
fields = ['id', 'first_name', 'last_name', 'username']

class NodeViewQuestionSerializer(serializers.ModelSerializer):
asker = NodeViewBasicUserSerializer()
answerer = NodeViewBasicUserSerializer()
class Meta:
model = Question
fields = ['question_content', 'created_at', 'asker', 'answer_content', 'answerer', 'answered_at']

# Serializer for Node References
class NodeViewReferenceSerializer(serializers.ModelSerializer):
contributors = NodeViewBasicUserSerializer(many=True)
class Meta:
model = Node
fields = ['node_id', 'node_title', 'contributors', 'publish_date']

# Serializer to Node
class NodeSerializer(serializers.ModelSerializer):
to_referenced_nodes = serializers.PrimaryKeyRelatedField(many=True, queryset=Node.objects.all())
proofs = serializers.PrimaryKeyRelatedField(many=True, queryset=Proof.objects.all())
class Meta:
model = Node
fields = ['node_id', 'node_title', 'publish_date', 'is_valid', 'num_visits' , 'theorem', 'contributors',
'reviewers', 'from_referenced_nodes' , 'to_referenced_nodes', 'proofs' , 'semantic_tags', 'wiki_tags', 'annotations']
to_referenced_nodes = NodeViewReferenceSerializer(many=True)
from_referenced_nodes = NodeViewReferenceSerializer(many=True)
proofs = NodeViewProofSerializer(many=True)
theorem = NodeViewTheoremSerializer()
question_set = NodeViewQuestionSerializer(many=True)
contributors = NodeViewBasicUserSerializer(many=True)
class Meta:
model = Node
fields = ['node_id', 'node_title', 'publish_date', 'is_valid', 'num_visits' , 'theorem', 'contributors',
'reviewers', 'from_referenced_nodes' , 'to_referenced_nodes', 'proofs' , 'question_set', 'semantic_tags', 'wiki_tags', 'annotations']

0 comments on commit d03bc59

Please sign in to comment.