From 927e41cdd31f0b38e5c3639c004d5cca50d55363 Mon Sep 17 00:00:00 2001 From: Xamora Date: Tue, 14 May 2024 11:33:26 +0200 Subject: [PATCH] temp --- django/chat/urls.py | 1 + django/frontend/static/js/api/chat/Ask.js | 22 +++++++++++++++---- .../frontend/static/js/api/chat/Channels.js | 2 +- django/frontend/static/js/views/Search.js | 18 ++++++++------- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/django/chat/urls.py b/django/chat/urls.py index 326fd95..13da1af 100644 --- a/django/chat/urls.py +++ b/django/chat/urls.py @@ -6,5 +6,6 @@ from .views import ask urlpatterns = [ path("", chat.ChannelView.as_view(), name="chats_page"), path("ask/", ask.AskView.as_view(), name="chats_ask"), + path("ask/", ask.AskView.as_view(), name="chats_ask_get"), path("ask/accept", ask.AskAcceptView.as_view(), name="chats_ask_accept"), ] diff --git a/django/frontend/static/js/api/chat/Ask.js b/django/frontend/static/js/api/chat/Ask.js index fb4c4ae..7fd1f57 100644 --- a/django/frontend/static/js/api/chat/Ask.js +++ b/django/frontend/static/js/api/chat/Ask.js @@ -1,11 +1,11 @@ -class Ask { +export default class Ask { constructor(client) { this.client = client; } async ask_game(asked) { - response = await this.client._post(`/api/chat/ask/`, { + let response = await this.client._post(`/api/chat/ask/`, { asked:asked, }); } @@ -15,14 +15,28 @@ class Ask { } async ask_game_accepted(asker) { - response = await this.client._post(`/api/chat/ask/accept`, { + let response = await this.client._post(`/api/chat/ask/accept`, { asker:asker, }); + + console.log(response.status); } async ask_game_refused(asker) { - response = await this.client._delete(`/api/chat/ask/`, { + let response = await this.client._delete(`/api/chat/ask/`, { asker:asker, }); + + console.log(response.status); } + + async is_asked(asked) { + let response = await this.client._get(`/api/chat/ask/${asked}`); + + const statu = response.status; + console.log(statu); + if (statu == 404 || statu == 204) + return false; + return true; + } } diff --git a/django/frontend/static/js/api/chat/Channels.js b/django/frontend/static/js/api/chat/Channels.js index 1ffde7d..738adf3 100644 --- a/django/frontend/static/js/api/chat/Channels.js +++ b/django/frontend/static/js/api/chat/Channels.js @@ -16,7 +16,7 @@ export default class Channels { return undefined; const data = await response.json(); - console.log(data) + //console.log(data) this.channel = new Channel(this.client, data.id, members_id, data.messages, reload); } diff --git a/django/frontend/static/js/views/Search.js b/django/frontend/static/js/views/Search.js index b9cb83a..9c19ca0 100644 --- a/django/frontend/static/js/views/Search.js +++ b/django/frontend/static/js/views/Search.js @@ -1,11 +1,13 @@ import AbstractView from "./abstracts/AbstractView.js"; import { client, lang } from "../index.js"; import Channels from '../api/chat/Channels.js' +import Ask from '../api/chat/Ask.js' export default class extends AbstractView { constructor(params) { super(params, 'SearchWindowTitle'); this.channelManager = new Channels(client); + this.AskGame = new Ask(client); } async postInit() { @@ -187,7 +189,7 @@ export default class extends AbstractView { // Scroll to the bottom of messages messages.scrollTop = messages.scrollHeight; - // this.display_invite(); + this.display_invite(); } @@ -204,7 +206,6 @@ export default class extends AbstractView { let date = new Date(message.time); text.title = date.toLocaleString("fr-FR"); text.appendChild(document.createTextNode(message.content)); - console.log(message.author, client.me.id) text.id = message.author === client.me.id ? "you" : "other"; messages.appendChild(text); @@ -261,16 +262,17 @@ export default class extends AbstractView { if (chat == undefined) return ; - let members_id = this.channelManager.channel.members_id; + let members_id = this.channelManager.channel.members; let others = members_id.filter(id => id !== client.me.id); + let user = others[0]; let invite = document.getElementById("invite") || document.createElement("button"); let yes = document.getElementById("yes") || document.createElement("button"); let no = document.getElementById("no") || document.createElement("button"); - let invitedBy; + const is_asked = await this.AskGame.is_asked(user); - if (invitedBy == undefined) { + if (!is_asked) { if (yes && no) { yes.remove(); @@ -283,7 +285,7 @@ export default class extends AbstractView { invite.innerText = "invite"; invite.title = "Invite to play a game"; invite.onclick = async () => { - await client.notice.send_invite(others); + await this.AskGame.ask_game(user) }; chat.appendChild(invite); } @@ -296,14 +298,14 @@ export default class extends AbstractView { yes.style.background = "green"; yes.title = "Accept to play a game"; yes.onclick = async () => { - await client.notice.accept_invite(invitedBy); + await this.AskGame.ask_game_accepted(user) }; no.id = "no"; no.style.background = "red"; no.title = "Refuse to play a game"; no.onclick = async () => { - await client.notice.refuse_invite(invitedBy); + await this.AskGame.ask_game_refused(user) }; chat.appendChild(yes);