Files
ibapp-backend/core/apps/wherehouse/views/wherehouse.py
2025-09-25 17:40:50 +05:00

55 lines
1.9 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.wherehouse.models import WhereHouse, Inventory
from core.apps.wherehouse.serializers import wherehouse as serializers
from core.apps.accounts.permissions.permissions import HasRolePermission
class WhereHouseListApiView(generics.GenericAPIView):
serializer_class = serializers.WhereHouseListSerializer
queryset = WhereHouse.objects.prefetch_related('users')
permission_classes = [HasRolePermission]
def get(self, request):
mine = request.query_params.get('mine')
if mine and mine == 'true':
self.queryset = self.queryset.filter(users=request.user)
page = self.paginate_queryset(self.queryset)
if page is not None:
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
class WhereHouseDetailApiView(generics.RetrieveAPIView):
serializer_class = serializers.WhereHouseDetailSerializer
queryset = WhereHouse.objects.all()
permission_classes = [HasRolePermission]
lookup_field = 'id'
class WhereHouseCreateApiView(generics.CreateAPIView):
serializer_class = serializers.WhereHouseCreateSerializer
queryset = WhereHouse.objects.all()
permission_classes = [HasRolePermission]
class WhereHouseDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
def delete(self, request, id):
wherehouse = get_object_or_404(WhereHouse, id=id)
wherehouse.delete()
return Response(
{'success': True, 'message': 'Deleted!'},
status=204
)
class WhereHouseUpdateApiView(generics.UpdateAPIView):
serializer_class = serializers.WhereHouseUpdateSerializer
queryset = WhereHouse.objects.all()
lookup_field = 'id'
permission_classes = [HasRolePermission]