2018-05-07 00:06:29 +00:00
|
|
|
from utils.api import serializers
|
|
|
|
from utils.api._serializers import UsernameSerializer
|
|
|
|
|
|
|
|
from .models import Group
|
|
|
|
|
|
|
|
|
|
|
|
class GroupSerializer(serializers.ModelSerializer):
|
|
|
|
created_by = UsernameSerializer()
|
2018-05-13 08:40:47 +00:00
|
|
|
members = UsernameSerializer(many=True)
|
2018-05-07 00:06:29 +00:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = Group
|
|
|
|
fields = "__all__"
|
2018-05-13 08:40:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
class CreateGroupSerializer(serializers.Serializer):
|
|
|
|
name = serializers.CharField()
|
|
|
|
description = serializers.CharField()
|
|
|
|
password = serializers.CharField(allow_blank=True)
|
|
|
|
allow_join = serializers.BooleanField()
|
|
|
|
|
|
|
|
|
|
|
|
class EditGroupSerializer(CreateGroupSerializer):
|
|
|
|
id = serializers.IntegerField()
|
|
|
|
|
|
|
|
|
|
|
|
class DeleteGroupSerializer(serializers.Serializer):
|
|
|
|
group_id = serializers.IntegerField()
|
|
|
|
user_id = serializers.IntegerField(required=False)
|
|
|
|
|
|
|
|
|
|
|
|
class SimpleGroupSerializer(serializers.ModelSerializer):
|
|
|
|
created_by = UsernameSerializer()
|
2018-05-16 17:13:54 +00:00
|
|
|
password = serializers.SerializerMethodField()
|
|
|
|
me = serializers.BooleanField()
|
2018-05-20 05:30:52 +00:00
|
|
|
members = UsernameSerializer(many=True)
|
2018-05-16 17:13:54 +00:00
|
|
|
|
|
|
|
def get_password(self, obj):
|
|
|
|
return obj.password != ""
|
2018-05-13 08:40:47 +00:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = Group
|
2018-05-20 05:30:52 +00:00
|
|
|
fields = ["id", "created_by", "name", "password", "me", "members"]
|
2018-05-13 08:40:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
class JoinGroupSerializer(serializers.Serializer):
|
|
|
|
group_name = serializers.CharField()
|
2018-05-20 05:30:52 +00:00
|
|
|
password = serializers.CharField(allow_blank=True)
|
|
|
|
|
|
|
|
|
|
|
|
class AddUserToGroupSerializer(serializers.Serializer):
|
|
|
|
group_id = serializers.IntegerField()
|
|
|
|
username = serializers.CharField()
|