Skip to content

Commit

Permalink
Merge c616f2c into 0113d88
Browse files Browse the repository at this point in the history
  • Loading branch information
wasswa-derick committed Aug 16, 2018
2 parents 0113d88 + c616f2c commit effd8e0
Show file tree
Hide file tree
Showing 14 changed files with 1,003 additions and 518 deletions.
31 changes: 30 additions & 1 deletion wger/core/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@
DaysOfWeek,
License,
RepetitionUnit,
WeightUnit)
WeightUnit,
User,
APIKeyUsers)


class UserprofileSerializer(serializers.ModelSerializer):
Expand Down Expand Up @@ -79,3 +81,30 @@ class WeightUnitSerializer(serializers.ModelSerializer):
'''
class Meta:
model = WeightUnit


class Userserializer(serializers.ModelSerializer):
'''
Users' registration serializer
'''
class Meta:
model = User
fields = (
'username',
'email',
'password'
)
extra_kwargs = {'password': {'write_only': True}}

def create(self, validated_data):
user = User(
email=validated_data['email'],
username=validated_data['username'])
user.set_password(validated_data['password'])
user.save()

user_profile = user.userprofile
user_profile.rest_api_user = True
user_profile.save()

return user
34 changes: 31 additions & 3 deletions wger/core/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,25 @@
DaysOfWeek,
License,
RepetitionUnit,
WeightUnit)
WeightUnit,
APIKeyUsers
)

from wger.core.api.serializers import (
UsernameSerializer,
LanguageSerializer,
DaysOfWeekSerializer,
LicenseSerializer,
RepetitionUnitSerializer,
WeightUnitSerializer
WeightUnitSerializer,
Userserializer
)
from wger.core.api.serializers import UserprofileSerializer
from wger.utils.permissions import UpdateOnlyPermission, WgerPermission
from wger.utils.permissions import (
UpdateOnlyPermission,
WgerPermission,
CanCreateUserViaAPIPermission
)


class UserProfileViewSet(viewsets.ModelViewSet):
Expand Down Expand Up @@ -121,3 +129,23 @@ class WeightUnitViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = WeightUnitSerializer
ordering_fields = '__all__'
filter_fields = ('name', )


class UsersViewSet(viewsets.ModelViewSet):
'''
API endpoint for user objects
'''
queryset = User.objects.all()
serializer_class = Userserializer
is_private = True
permission_classes = (CanCreateUserViaAPIPermission, )
ordering_fields = '__all__'

def perform_create(self, serializer):
'''
Set the api key users data
'''
user = serializer.save()

api_user = APIKeyUsers.objects.create(user=user, creator=self.request.user)
api_user.save()
Loading

0 comments on commit effd8e0

Please sign in to comment.