mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-15 01:55:21 +00:00
64 lines
3.0 KiB
Python
64 lines
3.0 KiB
Python
"""Junior view file"""
|
|
from rest_framework import viewsets, status
|
|
from rest_framework.permissions import IsAuthenticated
|
|
"""Django app import"""
|
|
from junior.models import Junior
|
|
from .serializers import CreateJuniorSerializer, JuniorDetailListSerializer
|
|
from guardian.models import Guardian
|
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
|
from account.utils import custom_response, custom_error_response
|
|
from guardian.utils import upload_image_to_alibaba
|
|
# Create your views here.
|
|
class UpdateJuniorProfile(viewsets.ViewSet):
|
|
"""Update junior profile"""
|
|
queryset = Junior.objects.all()
|
|
serializer_class = CreateJuniorSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
"""Use CreateJuniorSerializer"""
|
|
request_data = request.data
|
|
image = request.data.get('image')
|
|
image_url = ''
|
|
if image:
|
|
filename = f"images/{image.name}"
|
|
image_url = upload_image_to_alibaba(image, filename)
|
|
request_data = {"image": image_url}
|
|
serializer = CreateJuniorSerializer(context={"user":request.user, "image":image_url,
|
|
"first_name": request.data.get('first_name'),
|
|
"last_name": request.data.get('last_name')
|
|
},
|
|
data=request_data)
|
|
if serializer.is_valid():
|
|
"""save serializer"""
|
|
serializer.save()
|
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
|
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
class ValidateGuardianCode(viewsets.ViewSet):
|
|
"""Check guardian code exist or not"""
|
|
queryset = Guardian.objects.all()
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def list(self, request, *args, **kwargs):
|
|
"""check guardian code"""
|
|
guardian_code = self.request.GET.get('guardian_code').split(',')
|
|
for code in guardian_code:
|
|
guardian_data = Guardian.objects.filter(guardian_code=code).exists()
|
|
if guardian_data:
|
|
return custom_response(SUCCESS_CODE['3013'], response_status=status.HTTP_200_OK)
|
|
else:
|
|
return custom_error_response(ERROR_CODE["2022"], response_status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
class JuniorListAPIView(viewsets.ModelViewSet):
|
|
"""Junior list of assosicated guardian"""
|
|
|
|
serializer_class = JuniorDetailListSerializer
|
|
queryset = Junior.objects.all()
|
|
def list(self, request, *args, **kwargs):
|
|
""" junior list"""
|
|
guardian_data = Guardian.objects.filter(user__email=request.user).last()
|
|
queryset = Junior.objects.filter(guardian_code__icontains=str(guardian_data.guardian_code))
|
|
serializer = JuniorDetailListSerializer(queryset, many=True)
|
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|