diff --git a/api/v1/serializers.py b/api/v1/serializers.py index ea6465f9..d6eb4551 100644 --- a/api/v1/serializers.py +++ b/api/v1/serializers.py @@ -1,6 +1,44 @@ from rest_framework import serializers -from apps.course.models import Category, Course +from apps.course.models import Category, Course, Material, Like + + +class MaterialSerializer(serializers.ModelSerializer): + + class Meta: + model = Material + fields = ( + 'id', + 'title', + 'cover', + 'short_description', + 'created_at', + 'update_at', + ) + + read_only_fields = ( + 'id', + 'created_at', + 'update_at', + ) + + +class LikeSerializer(serializers.ModelSerializer): + + class Meta: + model = Like + fields = ( + 'id', + 'user', + 'created_at', + 'update_at', + ) + + read_only_fields = ( + 'id', + 'created_at', + 'update_at', + ) class CategorySerializer(serializers.ModelSerializer): diff --git a/api/v1/urls.py b/api/v1/urls.py index 1d6feefc..31cd6ec3 100644 --- a/api/v1/urls.py +++ b/api/v1/urls.py @@ -6,11 +6,16 @@ from rest_framework.routers import DefaultRouter from drf_yasg.views import get_schema_view from drf_yasg import openapi -from .views import CategoryViewSet, CourseViewSet +from .views import ( + CategoryViewSet, CourseViewSet, + MaterialViewSet, LikeViewSet, +) router = DefaultRouter() router.register(r'courses', CourseViewSet, base_name='courses') router.register(r'categories', CategoryViewSet, base_name='categories') +router.register(r'materials', MaterialViewSet, base_name='materials') +router.register(r'likes', LikeViewSet, base_name='likes') schema_view = get_schema_view( diff --git a/api/v1/views.py b/api/v1/views.py index 2d543d55..274aa545 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -1,9 +1,22 @@ from rest_framework import viewsets -from .serializers import CategorySerializer, CourseSerializer from . import ExtendedModelViewSet +from .serializers import ( + CategorySerializer, CourseSerializer, + MaterialSerializer, LikeSerializer, +) -from apps.course.models import Category, Course +from apps.course.models import Category, Course, Material, Like + + +class MaterialViewSet(ExtendedModelViewSet): + queryset = Material.objects.all() + serializer_class = MaterialSerializer + + +class LikeViewSet(ExtendedModelViewSet): + queryset = Like.objects.select_related('user').all() + serializer_class = LikeSerializer class CategoryViewSet(ExtendedModelViewSet):