57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
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) |