This commit is contained in:
2026-05-26 21:25:26 -06:00
parent 8731012f47
commit 57c0572fd9
38 changed files with 1507 additions and 476 deletions

View File

@@ -3,33 +3,33 @@ from account.models import User
from message.models import Message
from message.serializers import CreateMessageSerializer, MessageSerializer
from submission.models import Submission
from utils.api import APIView
from utils.api import AsyncAPIView
from utils.api.api import validate_serializer
class MessageAPI(APIView):
class MessageAPI(AsyncAPIView):
@login_required
def get(self, request):
async def get(self, request):
messages = Message.objects.select_related(
"recipient", "sender", "submission", "submission__problem"
).filter(recipient=request.user)
return self.success(self.paginate_data(request, messages, MessageSerializer))
return self.success(await self.async_paginate_data(request, messages, MessageSerializer))
@validate_serializer(CreateMessageSerializer)
@super_admin_required
def post(self, request):
async def post(self, request):
data = request.data
if data["recipient"] == request.user.id:
return self.error("Can not send a message to youself")
try:
recipient = User.objects.get(id=data["recipient"], is_disabled=False)
recipient = await User.objects.aget(id=data["recipient"], is_disabled=False)
except User.DoesNotExist:
return self.error("User does not exist")
try:
submission = Submission.objects.get(id=data["submission"])
submission = await Submission.objects.aget(id=data["submission"])
except Submission.DoesNotExist:
return self.error("Submission does not exist")
Message.objects.create(
await Message.objects.acreate(
submission=submission,
message=data["message"],
sender=request.user,