Files
ibapp-backend/core/apps/counterparty/views/counterparty_folder.py
2025-09-03 17:31:30 +05:00

57 lines
1.8 KiB
Python

from django.shortcuts import get_object_or_404
from rest_framework import generics, views
from rest_framework.response import Response
from core.apps.counterparty.models import CounterpartyFolder
from core.apps.counterparty.serializers import counterparty_folder as serializers
from core.apps.accounts.permissions.permissions import HasRolePermission
class CounterpartyFolderListApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyFolderListSerializer
queryset = CounterpartyFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
pagination_class = None
def get(self, request):
folders = self.get_queryset()
serializer = self.serializer_class(folders, many=True)
return Response(serializer.data, status=200)
class CounterpartyCreateApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyFolderCreateSerializer
queryset = CounterpartyFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def post(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(
{'success': True, 'message': 'created'},
status=201
)
return Response(
{'success': False, 'message': serializer.errors},
status=400
)
class CounterpartyDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def delete(self, request, id):
counterparty_folder = get_object_or_404(CounterpartyFolder, id=id)
counterparty_folder.delete()
return Response(
{'success': True, 'message': 'counterparty folder deleted'},
status=204
)