mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Ajout des Bundles de fichiers [#24]
This commit is contained in:
125
Back-End/Subscriptions/views/registration_file_group_views.py
Normal file
125
Back-End/Subscriptions/views/registration_file_group_views.py
Normal file
@ -0,0 +1,125 @@
|
||||
from django.http.response import JsonResponse
|
||||
from drf_yasg.utils import swagger_auto_schema
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework import status
|
||||
from rest_framework.decorators import action, api_view
|
||||
from drf_yasg.utils import swagger_auto_schema
|
||||
from drf_yasg import openapi
|
||||
|
||||
from Subscriptions.serializers import RegistrationFileGroupSerializer
|
||||
from Subscriptions.models import RegistrationFileGroup, RegistrationFileTemplate
|
||||
from N3wtSchool import bdd
|
||||
|
||||
class RegistrationFileGroupView(APIView):
|
||||
@swagger_auto_schema(
|
||||
operation_description="Récupère tous les groupes de fichiers d'inscription",
|
||||
responses={200: RegistrationFileGroupSerializer(many=True)}
|
||||
)
|
||||
def get(self, request):
|
||||
"""
|
||||
Récupère tous les groupes de fichiers d'inscription.
|
||||
"""
|
||||
groups = RegistrationFileGroup.objects.all()
|
||||
serializer = RegistrationFileGroupSerializer(groups, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
@swagger_auto_schema(
|
||||
operation_description="Crée un nouveau groupe de fichiers d'inscription",
|
||||
request_body=RegistrationFileGroupSerializer,
|
||||
responses={
|
||||
201: RegistrationFileGroupSerializer,
|
||||
400: "Données invalides"
|
||||
}
|
||||
)
|
||||
def post(self, request):
|
||||
"""
|
||||
Crée un nouveau groupe de fichiers d'inscription.
|
||||
"""
|
||||
serializer = RegistrationFileGroupSerializer(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 RegistrationFileGroupSimpleView(APIView):
|
||||
@swagger_auto_schema(
|
||||
operation_description="Récupère un groupe de fichiers d'inscription spécifique",
|
||||
responses={
|
||||
200: RegistrationFileGroupSerializer,
|
||||
404: "Groupe non trouvé"
|
||||
}
|
||||
)
|
||||
def get(self, request, id):
|
||||
"""
|
||||
Récupère un groupe de fichiers d'inscription spécifique.
|
||||
"""
|
||||
group = bdd.getObject(_objectName=RegistrationFileGroup, _columnName='id', _value=id)
|
||||
if group is None:
|
||||
return JsonResponse({"errorMessage": "Le groupe de fichiers n'a pas été trouvé"},
|
||||
status=status.HTTP_404_NOT_FOUND)
|
||||
serializer = RegistrationFileGroupSerializer(group)
|
||||
return JsonResponse(serializer.data)
|
||||
|
||||
@swagger_auto_schema(
|
||||
operation_description="Met à jour un groupe de fichiers d'inscription",
|
||||
request_body=RegistrationFileGroupSerializer,
|
||||
responses={
|
||||
200: RegistrationFileGroupSerializer,
|
||||
400: "Données invalides",
|
||||
404: "Groupe non trouvé"
|
||||
}
|
||||
)
|
||||
def put(self, request, id):
|
||||
"""
|
||||
Met à jour un groupe de fichiers d'inscription existant.
|
||||
"""
|
||||
group = bdd.getObject(_objectName=RegistrationFileGroup, _columnName='id', _value=id)
|
||||
if group is None:
|
||||
return JsonResponse({'erreur': "Le groupe de fichiers n'a pas été trouvé"},
|
||||
status=status.HTTP_404_NOT_FOUND)
|
||||
serializer = RegistrationFileGroupSerializer(group, data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@swagger_auto_schema(
|
||||
operation_description="Supprime un groupe de fichiers d'inscription",
|
||||
responses={
|
||||
204: "Suppression réussie",
|
||||
404: "Groupe non trouvé"
|
||||
}
|
||||
)
|
||||
def delete(self, request, id):
|
||||
"""
|
||||
Supprime un groupe de fichiers d'inscription.
|
||||
"""
|
||||
group = bdd.getObject(_objectName=RegistrationFileGroup, _columnName='id', _value=id)
|
||||
if group is not None:
|
||||
group.delete()
|
||||
return JsonResponse({'message': 'La suppression du groupe a été effectuée avec succès'},
|
||||
status=status.HTTP_204_NO_CONTENT)
|
||||
return JsonResponse({'erreur': "Le groupe de fichiers n'a pas été trouvé"},
|
||||
status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
@swagger_auto_schema(
|
||||
method='get',
|
||||
responses={200: openapi.Response('Success', schema=openapi.Schema(
|
||||
type=openapi.TYPE_OBJECT,
|
||||
properties={
|
||||
'message': openapi.Schema(type=openapi.TYPE_STRING)
|
||||
}
|
||||
))},
|
||||
operation_description="Récupère les fichiers d'inscription d'un groupe donné",
|
||||
operation_summary="Récupèrer les fichiers d'inscription d'un groupe donné"
|
||||
)
|
||||
@api_view(['GET'])
|
||||
def get_registration_files_by_group(request, id):
|
||||
try:
|
||||
group = RegistrationFileGroup.objects.get(id=id)
|
||||
templates = RegistrationFileTemplate.objects.filter(group=group)
|
||||
templates_data = list(templates.values())
|
||||
return JsonResponse(templates_data, safe=False)
|
||||
except RegistrationFileGroup.DoesNotExist:
|
||||
return JsonResponse({'error': 'Le groupe de fichiers n\'a pas été trouvé'}, status=404)
|
||||
Reference in New Issue
Block a user