diff --git a/project/serializers.py b/project/serializers.py index 742a037..37c6f3f 100644 --- a/project/serializers.py +++ b/project/serializers.py @@ -2,7 +2,7 @@ from rest_framework import serializers from .models import Project -class ProjectSerializers(serializers.ModelSerializer): +class ProjectSerializer(serializers.ModelSerializer): class Meta: model = Project fields = ['id', 'name', 'project_image', 'client', 'total_compensation', 'start_date', 'end_date'] diff --git a/project/views.py b/project/views.py index 1d62357..d7e048c 100644 --- a/project/views.py +++ b/project/views.py @@ -3,7 +3,7 @@ from rest_framework.views import APIView from rest_framework.authentication import TokenAuthentication, SessionAuthentication from rest_framework.permissions import IsAuthenticated from .models import Project -from .serializers import ProjectSerializers +from .serializers import ProjectSerializer class ProjectList(APIView): @@ -12,5 +12,5 @@ class ProjectList(APIView): def get(self, request): projects = Project.objects.all() - serializer = ProjectSerializers(projects, many=True) + serializer = ProjectSerializer(projects, many=True) return Response(serializer.data) diff --git a/representative/admin.py b/representative/admin.py index 8c38f3f..95ac154 100644 --- a/representative/admin.py +++ b/representative/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin +from .models import * -# Register your models here. + +admin.site.register([Representative, Role]) diff --git a/representative/models.py b/representative/models.py index f288a0f..00fb410 100644 --- a/representative/models.py +++ b/representative/models.py @@ -17,7 +17,4 @@ class Representative(models.Model): phone = PhoneNumberField() role = models.ForeignKey(Role, on_delete=models.CASCADE) projects = models.ManyToManyField(Project) - clients = models.ForeignKey(Client, on_delete=models.CASCADE) - - def __str__(self): - return self.user.name + client = models.ForeignKey(Client, on_delete=models.CASCADE) diff --git a/representative/serializers.py b/representative/serializers.py new file mode 100644 index 0000000..df69ed1 --- /dev/null +++ b/representative/serializers.py @@ -0,0 +1,14 @@ +from rest_framework import serializers +from .models import Role, Representative + + +class RoleSerializer(serializers.ModelSerializer): + class Meta: + model = Role + fields = ['id', 'name'] + + +class RepresentativeSerializer(serializers.ModelSerializer): + class Meta: + model = Representative + fields = ['id', 'user', 'phone', 'role', 'projects', 'client'] diff --git a/representative/urls.py b/representative/urls.py new file mode 100644 index 0000000..98c1621 --- /dev/null +++ b/representative/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('representative-roles/', views.RoleList.as_view()), + path('representatives/', views.RepresentativeList.as_view()), +] diff --git a/representative/views.py b/representative/views.py index 91ea44a..7df7397 100644 --- a/representative/views.py +++ b/representative/views.py @@ -1,3 +1,26 @@ -from django.shortcuts import render +from rest_framework.response import Response +from rest_framework.views import APIView +from rest_framework.authentication import TokenAuthentication, SessionAuthentication +from rest_framework.permissions import IsAuthenticated +from .models import Representative, Role +from .serializers import RoleSerializer, RepresentativeSerializer -# Create your views here. + +class RoleList(APIView): + authentication_classes = [TokenAuthentication, SessionAuthentication] + permission_classes = [IsAuthenticated] + + def get(self, request): + roles = Role.objects.all() + serializer = RoleSerializer(roles, many=True) + return Response(serializer.data) + + +class RepresentativeList(APIView): + authentication_classes = [TokenAuthentication, SessionAuthentication] + permission_classes = [IsAuthenticated] + + def get(self, request): + representatives = Representative.objects.all() + serializer = RepresentativeSerializer(representatives, many=True) + return Response(serializer.data) diff --git a/workx_backend/urls.py b/workx_backend/urls.py index aef8e04..7390f56 100644 --- a/workx_backend/urls.py +++ b/workx_backend/urls.py @@ -6,6 +6,7 @@ from drf_yasg import openapi from client import urls as clientUrls from employee import urls as employeeUrls from project import urls as projectUrls +from representative import urls as representativeUrls schema_view = get_schema_view( @@ -31,7 +32,8 @@ urlpatterns = [ path('api/', include([ path('', include(clientUrls)), path('', include(employeeUrls)), - path('', include(projectUrls)) + path('', include(projectUrls)), + path('', include(representativeUrls)) ])) ])), ]