Refactor and implement queueing messages
This commit is contained in:
57
core/views/queues.py
Normal file
57
core/views/queues.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from rest_framework.views import APIView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
|
||||
from rest_framework import status
|
||||
|
||||
from django.http import HttpResponse
|
||||
from core.models import QueuedMessage, Message
|
||||
import requests
|
||||
import orjson
|
||||
from django.conf import settings
|
||||
import redis
|
||||
import msgpack
|
||||
|
||||
# def start_typing(uuid):
|
||||
# url = f"http://signal:8080/v1/typing_indicator/{settings.SIGNAL_NUMBER}"
|
||||
# data = {
|
||||
# "recipient": uuid,
|
||||
# }
|
||||
|
||||
# response = requests.put(url, json=data)
|
||||
|
||||
# def stop_typing(uuid):
|
||||
# url = f"http://signal:8080/v1/typing_indicator/{settings.SIGNAL_NUMBER}"
|
||||
# data = {
|
||||
# "recipient": uuid,
|
||||
# }
|
||||
|
||||
# response = requests.delete(url, json=data)
|
||||
|
||||
r = redis.from_url("unix://var/run/gia-redis.sock", db=10)
|
||||
|
||||
|
||||
class AcceptMessageAPI(LoginRequiredMixin, APIView):
|
||||
def get(self, request, message_id):
|
||||
to_submit = {
|
||||
"type": "def",
|
||||
"method": "accept_message",
|
||||
"user_id": request.user.id,
|
||||
"message_id": message_id,
|
||||
}
|
||||
packed = msgpack.packb(to_submit, use_bin_type=True)
|
||||
r.publish("processing", packed)
|
||||
return HttpResponse(status=status.HTTP_200_OK)
|
||||
|
||||
class RejectMessageAPI(LoginRequiredMixin, APIView):
|
||||
def get(self, request, message_id):
|
||||
try:
|
||||
message = QueuedMessage.objects.get(
|
||||
user=self.request.user,
|
||||
id=message_id,
|
||||
)
|
||||
except QueuedMessage.DoesNotExist:
|
||||
return HttpResponse(status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
message.delete()
|
||||
|
||||
return HttpResponse(status=status.HTTP_200_OK)
|
||||
Reference in New Issue
Block a user