57 lines
1.8 KiB
Python
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
|
|
)
|
|
|
|
|