uncloud/uncloud_django_based/uncloud/uncloud_auth/serializers.py

50 lines
1.6 KiB
Python

from django.contrib.auth import get_user_model
from rest_framework import serializers
from rest_framework_nested.relations import NestedHyperlinkedRelatedField
from uncloud import AMOUNT_DECIMALS, AMOUNT_MAX_DIGITS
class UserSerializer(serializers.HyperlinkedModelSerializer):
balance = serializers.DecimalField(max_digits=AMOUNT_MAX_DIGITS,
decimal_places=AMOUNT_DECIMALS)
bill_endpoint = serializers.HyperlinkedIdentityField(
view_name='user-bill-list',
lookup_field='username',
lookup_url_kwarg='user_pk'
)
order_endpoint = serializers.HyperlinkedIdentityField(
view_name='user-order-list',
lookup_field='username',
lookup_url_kwarg='user_pk'
)
address_endpoint = serializers.HyperlinkedIdentityField(
view_name='user-address-list',
lookup_field='username',
lookup_url_kwarg='user_pk'
)
payment_method_endpoint = serializers.HyperlinkedIdentityField(
view_name='user-payment-method-list',
lookup_field='username',
lookup_url_kwarg='user_pk'
)
payment_endpoint = serializers.HyperlinkedIdentityField(
view_name='user-payment-list',
lookup_field='username',
lookup_url_kwarg='user_pk'
)
class Meta:
model = get_user_model()
fields = ['username', 'email', 'balance', 'maximum_credit',
'bill_endpoint', 'order_endpoint', 'address_endpoint',
'payment_method_endpoint', 'payment_endpoint']
class ImportUserSerializer(serializers.Serializer):
username = serializers.CharField()