""" 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)