mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
160 lines
7.2 KiB
Python
160 lines
7.2 KiB
Python
from django.http.response import JsonResponse
|
|
from drf_yasg.utils import swagger_auto_schema
|
|
from drf_yasg import openapi
|
|
from rest_framework.parsers import MultiPartParser, FormParser
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
from rest_framework import status
|
|
|
|
from Subscriptions.serializers import RegistrationTemplateMasterSerializer, RegistrationTemplateSerializer
|
|
from Subscriptions.models import RegistrationTemplateMaster, RegistrationTemplate
|
|
from N3wtSchool import bdd
|
|
|
|
class RegistrationTemplateMasterView(APIView):
|
|
@swagger_auto_schema(
|
|
operation_description="Récupère tous les masters de templates d'inscription",
|
|
responses={200: RegistrationTemplateMasterSerializer(many=True)}
|
|
)
|
|
def get(self, request):
|
|
masters = RegistrationTemplateMaster.objects.all()
|
|
serializer = RegistrationTemplateMasterSerializer(masters, many=True)
|
|
return Response(serializer.data)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Crée un nouveau master de template d'inscription",
|
|
request_body=RegistrationTemplateMasterSerializer,
|
|
responses={
|
|
201: RegistrationTemplateMasterSerializer,
|
|
400: "Données invalides"
|
|
}
|
|
)
|
|
def post(self, request):
|
|
serializer = RegistrationTemplateMasterSerializer(data=request.data)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
class RegistrationTemplateMasterSimpleView(APIView):
|
|
@swagger_auto_schema(
|
|
operation_description="Récupère un master de template d'inscription spécifique",
|
|
responses={
|
|
200: RegistrationTemplateMasterSerializer,
|
|
404: "Master non trouvé"
|
|
}
|
|
)
|
|
def get(self, request, id):
|
|
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
|
|
if master is None:
|
|
return JsonResponse({"errorMessage":'Le master de template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|
|
serializer = RegistrationTemplateMasterSerializer(master)
|
|
return JsonResponse(serializer.data, safe=False)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Met à jour un master de template d'inscription existant",
|
|
request_body=RegistrationTemplateMasterSerializer,
|
|
responses={
|
|
200: RegistrationTemplateMasterSerializer,
|
|
400: "Données invalides",
|
|
404: "Master non trouvé"
|
|
}
|
|
)
|
|
def put(self, request, id):
|
|
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
|
|
if master is None:
|
|
return JsonResponse({'erreur': 'Le master de template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|
|
serializer = RegistrationTemplateMasterSerializer(master, data=request.data)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Supprime un master de template d'inscription",
|
|
responses={
|
|
204: "Suppression réussie",
|
|
404: "Master non trouvé"
|
|
}
|
|
)
|
|
def delete(self, request, id):
|
|
master = bdd.getObject(_objectName=RegistrationTemplateMaster, _columnName='id', _value=id)
|
|
if master is not None:
|
|
master.delete()
|
|
return JsonResponse({'message': 'La suppression du master de template a été effectuée avec succès'}, safe=False, status=status.HTTP_204_NO_CONTENT)
|
|
else:
|
|
return JsonResponse({'erreur': 'Le master de template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|
|
|
|
class RegistrationTemplateView(APIView):
|
|
@swagger_auto_schema(
|
|
operation_description="Récupère tous les templates d'inscription",
|
|
responses={200: RegistrationTemplateSerializer(many=True)}
|
|
)
|
|
def get(self, request):
|
|
templates = RegistrationTemplate.objects.all()
|
|
serializer = RegistrationTemplateSerializer(templates, many=True)
|
|
return Response(serializer.data)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Crée un nouveau template d'inscription",
|
|
request_body=RegistrationTemplateSerializer,
|
|
responses={
|
|
201: RegistrationTemplateSerializer,
|
|
400: "Données invalides"
|
|
}
|
|
)
|
|
def post(self, request):
|
|
serializer = RegistrationTemplateSerializer(data=request.data)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
class RegistrationTemplateSimpleView(APIView):
|
|
@swagger_auto_schema(
|
|
operation_description="Récupère un template d'inscription spécifique",
|
|
responses={
|
|
200: RegistrationTemplateSerializer,
|
|
404: "Template non trouvé"
|
|
}
|
|
)
|
|
def get(self, request, id):
|
|
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
|
|
if template is None:
|
|
return JsonResponse({"errorMessage":'Le template d\'inscription n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|
|
serializer = RegistrationTemplateSerializer(template)
|
|
return JsonResponse(serializer.data, safe=False)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Met à jour un template d'inscription existant",
|
|
request_body=RegistrationTemplateSerializer,
|
|
responses={
|
|
200: RegistrationTemplateSerializer,
|
|
400: "Données invalides",
|
|
404: "Template non trouvé"
|
|
}
|
|
)
|
|
def put(self, request, id):
|
|
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
|
|
if template is None:
|
|
return JsonResponse({'erreur': 'Le template d\'inscription n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|
|
serializer = RegistrationTemplateSerializer(template, data=request.data)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response({'message': 'Template mis à jour avec succès', 'data': serializer.data}, status=status.HTTP_200_OK)
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description="Supprime un template d'inscription",
|
|
responses={
|
|
204: "Suppression réussie",
|
|
404: "Template non trouvé"
|
|
}
|
|
)
|
|
def delete(self, request, id):
|
|
template = bdd.getObject(_objectName=RegistrationTemplate, _columnName='id', _value=id)
|
|
if template is not None:
|
|
template.delete()
|
|
return JsonResponse({'message': 'La suppression du template a été effectuée avec succès'}, safe=False, status=status.HTTP_204_NO_CONTENT)
|
|
else:
|
|
return JsonResponse({'erreur': 'Le template n\'a pas été trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
|