from django.shortcuts import get_object_or_404 from rest_framework import generics, views from rest_framework.response import Response from core.apps.finance.models import ExpenceChat, ExpenceMessage from core.apps.finance.serializers import expence_chat as serializers from core.apps.accounts.permissions.permissions import HasRolePermission class ExpenceMessageCreateApiView(generics.GenericAPIView): serializer_class = serializers.ExpenceMessageCreateSerializer queryset = ExpenceMessage.objects.all() permission_classes = [HasRolePermission] def post(self, request): serializer = self.serializer_class(data=request.data, context={'user': request.user}) if serializer.is_valid(raise_exception=True): serializer.save() return Response( { 'success': True, 'message': 'created' }, status=201 ) return Response( { 'success': False, 'message': serializer.errors, }, status=400 ) class ExpenceMessageListApiView(generics.GenericAPIView): serializer_class = serializers.ExpenceMessageListSerializer queryset = ExpenceMessage.objects.select_related('user') permission_classes = [HasRolePermission] def get(self, request, chat_id): chat = get_object_or_404(ExpenceChat, id=chat_id) messages = self.queryset.filter(chat=chat) serializer = self.serializer_class(messages, many=True) return Response( { 'chat': { 'id': chat.id, 'expence': chat.expence.id }, 'messages': serializer.data }, status=200 )