add: add role crud api

This commit is contained in:
behruz-dev
2025-09-19 16:04:50 +05:00
parent 9b5aa5451e
commit 1d8c1918b8
4 changed files with 80 additions and 4 deletions

View File

@@ -1,4 +1,6 @@
from rest_framework import generics
from django.shortcuts import get_object_or_404
from rest_framework import generics, views
from rest_framework.response import Response
from core.apps.accounts.permissions.permissions import HasRolePermission
@@ -11,3 +13,62 @@ class RoleListApiView(generics.ListAPIView):
queryset = Role.objects.all()
permission_classes = [HasRolePermission]
class RoleCreateApiView(generics.GenericAPIView):
serializer_class = serializers.RoleSerializer
queryset = Role.objects.all()
permission_classes = [HasRolePermission]
def post(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(
{
'success': True, 'message': 'Role created',
},
status=201
)
return Response(
{
'success': False,
'error': serializer.errors,
},
status=400
)
class RoleUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.RoleSerializer
queryset = Role.objects.all()
permission_classes = [HasRolePermission]
def patch(self, request, id):
obj = get_object_or_404(Role, id=id)
serializer = self.serializer_class(data=request.data, instance=obj, partial=True)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(
{
'success': True,
'message': 'Role updated',
},
status=200
)
return Response(
{
'success': False,
'error': serializer.errors
},
status=400
)
class RoleDeleteApiView(views.APIView):
permissions_classes = [HasRolePermission]
def delete(self, request, id):
obj = get_object_or_404(Role, id=id)
obj.delete()
return Response({'success': True, 'message': 'deleted'}, status=204)