From e5c948e1b1c57d16be1cff53175a344cfd7a1d91 Mon Sep 17 00:00:00 2001 From: Ivlev Denis Date: Mon, 5 Feb 2018 18:47:27 +0300 Subject: [PATCH] LIL-179. Add serializer, viewset, route for User model --- api/v1/serializers.py | 42 ++++++++++++++++++++++++++++++++++++++++++ api/v1/urls.py | 2 ++ api/v1/views.py | 10 ++++++++++ 3 files changed, 54 insertions(+) diff --git a/api/v1/serializers.py b/api/v1/serializers.py index 4f01c5e8..60a0f77a 100644 --- a/api/v1/serializers.py +++ b/api/v1/serializers.py @@ -1,3 +1,4 @@ +from django.contrib.auth import get_user_model from rest_framework import serializers from apps.course.models import Category, Course, Material, Like @@ -6,6 +7,8 @@ from apps.content.models import ( Gallery, GalleryImage, ) +User = get_user_model() + class MaterialSerializer(serializers.ModelSerializer): @@ -211,3 +214,42 @@ class GalleryImageSerializer(serializers.ModelSerializer): 'created_at', 'update_at', ) + + +class UserSerializer(serializers.ModelSerializer): + + class Meta: + model = User + fields = ( + 'id', + 'username', + 'email', + 'first_name', + 'last_name', + 'is_staff', + 'is_active', + 'date_joined', + 'role', + 'gender', + 'country', + 'city', + 'about', + 'instagram', + 'facebook', + 'twitter', + 'pinterest', + 'youtube', + 'vkontakte', + 'fb_id', + 'fb_data', + 'is_email_proved', + 'photo', + ) + + read_only_fields = ( + 'id', + 'date_joined', + 'is_staff', + 'fb_id', + 'fb_data', + ) diff --git a/api/v1/urls.py b/api/v1/urls.py index e02ee44e..9a7b1957 100644 --- a/api/v1/urls.py +++ b/api/v1/urls.py @@ -12,6 +12,7 @@ from .views import ( ImageViewSet, TextViewSet, ImageTextViewSet, VideoViewSet, GalleryViewSet, GalleryImageViewSet, + UserViewSet, ) router = DefaultRouter() @@ -26,6 +27,7 @@ router.register(r'image-texts', ImageTextViewSet, base_name='image-texts') router.register(r'videos', VideoViewSet, base_name='videos') router.register(r'galleries', GalleryViewSet, base_name='galleries') router.register(r'gallery-images', GalleryImageViewSet, base_name='gallery-images') +router.register(r'users', UserViewSet, base_name='users') schema_view = get_schema_view( diff --git a/api/v1/views.py b/api/v1/views.py index cb58c9bb..9b93f88d 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -1,3 +1,5 @@ +from django.contrib.auth import get_user_model + from rest_framework import viewsets from . import ExtendedModelViewSet @@ -7,6 +9,7 @@ from .serializers import ( ImageSerializer, TextSerializer, ImageTextSerializer, VideoSerializer, GallerySerializer, GalleryImageSerializer, + UserSerializer, ) from apps.course.models import Category, Course, Material, Like @@ -15,6 +18,8 @@ from apps.content.models import ( Gallery, GalleryImage, ) +User = get_user_model() + class MaterialViewSet(ExtendedModelViewSet): queryset = Material.objects.all() @@ -77,3 +82,8 @@ class GalleryViewSet(ExtendedModelViewSet): class GalleryImageViewSet(ExtendedModelViewSet): queryset = GalleryImage.objects.select_related('gallery').all() serializer_class = GalleryImageSerializer + + +class UserViewSet(ExtendedModelViewSet): + queryset = User.objects.all() + serializer_class = UserSerializer