✨ Feat: [#41] notification 앱 생성 및 알림 조회 구현
This commit is contained in:
32
notifications/serializers.py
Normal file
32
notifications/serializers.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from .models import *
|
||||
from projects.models import *
|
||||
from rest_framework import serializers
|
||||
|
||||
class NotificationSerializer(serializers.ModelSerializer):
|
||||
meta = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Notification
|
||||
fields = ['id', 'content', 'note_type', 'is_read', 'meta']
|
||||
|
||||
def get_meta(self, obj):
|
||||
|
||||
REL_SERIALIZER_MAP = {
|
||||
'project_invitation' : ProjectInvitationMetaSerializer,
|
||||
}
|
||||
|
||||
for rel_name, serializer_cls in REL_SERIALIZER_MAP.items():
|
||||
rel_obj = getattr(obj, rel_name, None)
|
||||
if rel_obj is not None:
|
||||
return serializer_cls(rel_obj).data
|
||||
return None
|
||||
|
||||
class ProjectInvitationMetaSerializer(serializers.ModelSerializer):
|
||||
project_invitation_id = serializers.CharField(source='id')
|
||||
project_title = serializers.CharField(source='project.title')
|
||||
from_user_nickname = serializers.CharField(source='from_user.nickname')
|
||||
|
||||
class Meta:
|
||||
model = ProjectInvitation
|
||||
fields = ['project_invitation_id', 'project_title', 'from_user_nickname', 'status']
|
||||
|
||||
Reference in New Issue
Block a user