Files
2025-11-13 09:20:26 +05:00

27 lines
1014 B
Python

""" Django REST Framework Serializers """
from rest_framework import serializers
class UserMappingSerializer(serializers.Serializer): # pylint: disable=abstract-method
""" Serializer for User Mapping"""
provider = None
username = serializers.SerializerMethodField()
remote_id = serializers.SerializerMethodField()
def __init__(self, *args, **kwargs):
self.provider = kwargs['context'].get('provider', None)
super().__init__(*args, **kwargs)
def get_username(self, social_user):
""" Gets the edx username from a social user """
return social_user.user.username
def get_remote_id(self, social_user):
""" Gets remote id from social user based on provider """
remote_id_field_name = self.context.get('remote_id_field_name', None)
if remote_id_field_name:
return self.provider.get_remote_id_from_field_name(social_user, remote_id_field_name)
return self.provider.get_remote_id_from_social_auth(social_user)