2023-12-05 10:34:47 -03:00
|
|
|
from rest_framework import viewsets
|
2024-02-25 14:17:40 -03:00
|
|
|
from rest_framework.response import Response
|
|
|
|
from api import models, serializers
|
|
|
|
from django.db.models import Max
|
2023-12-05 10:34:47 -03:00
|
|
|
|
|
|
|
class RolViewSet(viewsets.ModelViewSet):
|
|
|
|
queryset = models.Rol.objects.all()
|
2024-01-07 13:16:13 -03:00
|
|
|
serializer_class = serializers.RolSerializer
|
|
|
|
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
|
|
# se indica que si no se indico el id, entonces sea el maximo + 1
|
|
|
|
if not request.data.get('id_rol', None):
|
2024-02-25 14:17:40 -03:00
|
|
|
max_id = models.Rol.objects.aggregate(Max('id_rol'))['id_rol__max']
|
2024-01-07 13:16:13 -03:00
|
|
|
new_id = max_id + 1 if max_id is not None else 1
|
|
|
|
request.data['id_rol'] = new_id
|
|
|
|
|
2024-02-25 14:17:40 -03:00
|
|
|
return super().create(request, *args, **kwargs)
|
|
|
|
|
|
|
|
def destroy(self, request, pk=None):
|
|
|
|
try:
|
|
|
|
return super().destroy(request, pk)
|
|
|
|
except Exception as ex:
|
|
|
|
return Response(str(ex), status=400)
|