add: add folder create api

This commit is contained in:
behruz-dev
2025-08-30 16:16:06 +05:00
parent 392fc13f8e
commit e23e2cce9b
3 changed files with 69 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
from django.db import transaction
from rest_framework import serializers
from core.apps.counterparty.models import CounterpartyFolder
class CounterpartyFolderListSerializer(serializers.ModelSerializer):
class Meta:
model = CounterpartyFolder
fields = [
'id', 'name'
]
class CounterpartyFolderCreateSerializer(serializers.Serializer):
name = serializers.CharField()
def create(self, validated_data):
with transaction.atomic():
return CounterpartyFolder.objects.create(
name=validated_data.get('name'),
)

View File

@@ -1,6 +1,7 @@
from django.urls import path, include
from core.apps.counterparty.views import counterparty as cp_views
from core.apps.counterparty.views import counterparty_folder as folder_views
urlpatterns = [
@@ -9,5 +10,11 @@ urlpatterns = [
path('list/', cp_views.CounterpartyListApiView.as_view()),
path('create/', cp_views.CounterpartyCreateApiView.as_view()),
]
))
)),
path('counterparty_folder/', include(
[
path('list/', folder_views.CounterpartyFolderListApiView.as_view()),
path('create/', folder_views.CounterpartyCreateApiView.as_view()),
]
))
]

View File

@@ -0,0 +1,38 @@
from rest_framework import generics
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 = []
def get(self, request):
folders = self.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():
serializers.save()
return Response(
{'success': True, 'message': 'created'},
status=201
)
return Response(
{'success': False, 'message': serializer.errors},
status=400
)