This commit is contained in:
41
backend/modules/crm/views.py
Normal file
41
backend/modules/crm/views.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import logging
|
||||
from rest_framework import viewsets, permissions
|
||||
from rest_framework.exceptions import ValidationError
|
||||
from .models import Client
|
||||
from .serializers import ClientSerializer
|
||||
from .services import ClientService
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ClientViewSet(viewsets.ModelViewSet):
|
||||
queryset = Client.objects.filter(is_active=True)
|
||||
serializer_class = ClientSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
def perform_create(self, serializer):
|
||||
try:
|
||||
instance = serializer.save()
|
||||
serializer.instance = instance
|
||||
except ValidationError as e:
|
||||
logger.warning(f"Validation error creating client by {self.request.user}: {e}")
|
||||
raise e
|
||||
except Exception as e:
|
||||
logger.error(f"Unexpected error creating client: {e}", exc_info=True)
|
||||
raise ValidationError({"detail": "Došlo je do greške pri stvaranju klijenta."})
|
||||
|
||||
def perform_update(self, serializer):
|
||||
try:
|
||||
instance = serializer.save()
|
||||
serializer.instance = instance
|
||||
except ValidationError as e:
|
||||
logger.warning(f"Validation error updating client by {self.request.user}: {e}")
|
||||
raise e
|
||||
except Exception as e:
|
||||
logger.error(f"Unexpected error updating client: {e}", exc_info=True)
|
||||
raise ValidationError({"detail": "Došlo je do greške pri ažuriranju klijenta."})
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
# Delegate deletion (soft-delete) to service layer
|
||||
ClientService.delete_client(instance, user=self.request.user)
|
||||
logger.info(f"Client {instance.id} soft-deleted by {self.request.user}")
|
||||
Reference in New Issue
Block a user