In progress
This commit is contained in:
parent
da789b3306
commit
54c5943180
@ -38,4 +38,4 @@ class AskModel(Model):
|
|||||||
|
|
||||||
# return if the asker ask the asked to play a game
|
# return if the asker ask the asked to play a game
|
||||||
def is_asked(self, asker_id, asked_id):
|
def is_asked(self, asker_id, asked_id):
|
||||||
return AskModel.objects.get(asker_id=asker_id, asked_id=asked_id) is not None
|
return AskModel.objects.filter(asker_id=asker_id, asked_id=asked_id).first() is not None
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
from rest_framework import serializers
|
|
||||||
|
|
||||||
from django.utils.translation import gettext as _
|
|
||||||
|
|
||||||
from profiles.models import ProfileModel
|
|
||||||
from ..models import ChatChannelModel, ChatMessageModel
|
|
||||||
|
|
||||||
class AskSerializer(serializers.ModelSerializer):
|
|
||||||
|
|
||||||
members_id = serializers.ListField(child=serializers.IntegerField())
|
|
@ -20,12 +20,13 @@ class AskView(APIView):
|
|||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
data: dict = request.data
|
data: dict = request.data
|
||||||
if (data["asked"] is None):
|
|
||||||
return
|
|
||||||
|
|
||||||
asker_id = request.user.pk
|
asker_id = request.user.pk
|
||||||
asked_id = data["asked"]
|
asked_id = data["asked"]
|
||||||
|
|
||||||
|
if (asked_id is None):
|
||||||
|
return Response(status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
if AskModel().is_asked(asker_id, asked_id):
|
if AskModel().is_asked(asker_id, asked_id):
|
||||||
return Response(status=status.HTTP_208_ALREADY_REPORTED)
|
return Response(status=status.HTTP_208_ALREADY_REPORTED)
|
||||||
|
|
||||||
@ -34,16 +35,22 @@ class AskView(APIView):
|
|||||||
|
|
||||||
def delete(self, request):
|
def delete(self, request):
|
||||||
data: dict = request.data
|
data: dict = request.data
|
||||||
if (data["asker"] is None):
|
|
||||||
return
|
|
||||||
|
|
||||||
asker_id = data["asker"]
|
asker_id = data["asker"]
|
||||||
asked_id = request.user.pk
|
asked_id = request.user.pk
|
||||||
|
|
||||||
|
if (asker_id is None):
|
||||||
|
asker_id = request.user.id
|
||||||
|
asked_id = data["asked"]
|
||||||
|
if (asked_id is None):
|
||||||
|
return Response(status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
if not AskModel().is_asked(asker_id, asked_id):
|
if not AskModel().is_asked(asker_id, asked_id):
|
||||||
return Response(status=status.HTTP_404_NOT_FOUND)
|
return Response(status=status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
asker = User.objects.filter(pk=asked_id)[0]
|
# Don't need more verification, just above is enough
|
||||||
|
asker = User.objects.get(pk=asker_id)
|
||||||
|
|
||||||
notice_manager.refuse_game(request.user, asker)
|
notice_manager.refuse_game(request.user, asker)
|
||||||
|
|
||||||
AskModel(asker_id=asker_id, asked_id=asked_id).delete()
|
AskModel(asker_id=asker_id, asked_id=asked_id).delete()
|
||||||
@ -59,16 +66,20 @@ class AskAcceptView(APIView):
|
|||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
data: dict = request.data
|
data: dict = request.data
|
||||||
if (data["asker"] is None):
|
|
||||||
return
|
|
||||||
|
|
||||||
asker_id = data["asker"]
|
asker_id = data["asker"]
|
||||||
asked_id = request.user.pk
|
asked_id = request.user.pk
|
||||||
|
|
||||||
|
if (asker_id is None):
|
||||||
|
return Response(status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
if not AskModel().is_asked(asker_id, asked_id):
|
if not AskModel().is_asked(asker_id, asked_id):
|
||||||
return Response(status=status.HTTP_404_NOT_FOUND)
|
return Response(status=status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
notice_manager.accept_game(asker=User.objects.filter(pk=asker_id)[0], asked=User.objects.filter(pk=asked_id)[0])
|
asker = User.objects.get(pk=asker_id)
|
||||||
|
asked = User.objects.get(pk=asked_id)
|
||||||
|
|
||||||
|
notice_manager.accept_game(asker=asker, asked=asked)
|
||||||
|
|
||||||
AskModel(asker_id=asker_id, asked_id=asked_id).delete()
|
AskModel(asker_id=asker_id, asked_id=asked_id).delete()
|
||||||
return Response(status=status.HTTP_200_OK)
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
@ -23,7 +23,7 @@ export default class Notice {
|
|||||||
this._socket.onclose = _ => this._socket = undefined;
|
this._socket.onclose = _ => this._socket = undefined;
|
||||||
this._socket.onmessage = message => {
|
this._socket.onmessage = message => {
|
||||||
const data = JSON.parse(message.data);
|
const data = JSON.parse(message.data);
|
||||||
//console.log(data)
|
console.log(data)
|
||||||
|
|
||||||
if (data.type === 'friend_request') {
|
if (data.type === 'friend_request') {
|
||||||
this.friend_request(data.author);
|
this.friend_request(data.author);
|
||||||
@ -37,7 +37,15 @@ export default class Notice {
|
|||||||
this.online(data.user)
|
this.online(data.user)
|
||||||
} else if (data.type === 'offline') {
|
} else if (data.type === 'offline') {
|
||||||
this.offline(data.user)
|
this.offline(data.user)
|
||||||
}
|
} else if (data.type == 'game_asked') {
|
||||||
|
|
||||||
|
} else if (data.type == 'game_canceled') {
|
||||||
|
|
||||||
|
} else if (data.type == 'game_accepted') {
|
||||||
|
|
||||||
|
} else if (data.type == 'game_refused') {
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,18 +5,24 @@ class Ask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async ask_game(asked) {
|
async ask_game(asked) {
|
||||||
response = await this.client._post(`/api/chat/ask/`);
|
response = await this.client._post(`/api/chat/ask/`, {
|
||||||
|
asked:asked,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async ask_game_canceled() {
|
async ask_game_canceled() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async ask_game_accepted() {
|
async ask_game_accepted(asker) {
|
||||||
|
response = await this.client._post(`/api/chat/ask/accept`, {
|
||||||
|
asker:asker,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async ask_game_refused() {
|
async ask_game_refused(asker) {
|
||||||
|
response = await this.client._delete(`/api/chat/ask/`, {
|
||||||
|
asker:asker,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user