This commit is contained in:
Xamora 2024-05-14 11:33:26 +02:00
parent ff21682310
commit 927e41cdd3
4 changed files with 30 additions and 13 deletions

View File

@ -6,5 +6,6 @@ from .views import ask
urlpatterns = [ urlpatterns = [
path("", chat.ChannelView.as_view(), name="chats_page"), 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"),
path("ask/<int:pk>", ask.AskView.as_view(), name="chats_ask_get"),
path("ask/accept", ask.AskAcceptView.as_view(), name="chats_ask_accept"), path("ask/accept", ask.AskAcceptView.as_view(), name="chats_ask_accept"),
] ]

View File

@ -1,11 +1,11 @@
class Ask { export default class Ask {
constructor(client) { constructor(client) {
this.client = client; this.client = client;
} }
async ask_game(asked) { async ask_game(asked) {
response = await this.client._post(`/api/chat/ask/`, { let response = await this.client._post(`/api/chat/ask/`, {
asked:asked, asked:asked,
}); });
} }
@ -15,14 +15,28 @@ class Ask {
} }
async ask_game_accepted(asker) { 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, asker:asker,
}); });
console.log(response.status);
} }
async ask_game_refused(asker) { async ask_game_refused(asker) {
response = await this.client._delete(`/api/chat/ask/`, { let response = await this.client._delete(`/api/chat/ask/`, {
asker:asker, 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;
} }
} }

View File

@ -16,7 +16,7 @@ export default class Channels {
return undefined; return undefined;
const data = await response.json(); const data = await response.json();
console.log(data) //console.log(data)
this.channel = new Channel(this.client, data.id, members_id, data.messages, reload); this.channel = new Channel(this.client, data.id, members_id, data.messages, reload);
} }

View File

@ -1,11 +1,13 @@
import AbstractView from "./abstracts/AbstractView.js"; import AbstractView from "./abstracts/AbstractView.js";
import { client, lang } from "../index.js"; import { client, lang } from "../index.js";
import Channels from '../api/chat/Channels.js' import Channels from '../api/chat/Channels.js'
import Ask from '../api/chat/Ask.js'
export default class extends AbstractView { export default class extends AbstractView {
constructor(params) { constructor(params) {
super(params, 'SearchWindowTitle'); super(params, 'SearchWindowTitle');
this.channelManager = new Channels(client); this.channelManager = new Channels(client);
this.AskGame = new Ask(client);
} }
async postInit() { async postInit() {
@ -187,7 +189,7 @@ export default class extends AbstractView {
// Scroll to the bottom of messages // Scroll to the bottom of messages
messages.scrollTop = messages.scrollHeight; 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); let date = new Date(message.time);
text.title = date.toLocaleString("fr-FR"); text.title = date.toLocaleString("fr-FR");
text.appendChild(document.createTextNode(message.content)); text.appendChild(document.createTextNode(message.content));
console.log(message.author, client.me.id)
text.id = message.author === client.me.id ? "you" : "other"; text.id = message.author === client.me.id ? "you" : "other";
messages.appendChild(text); messages.appendChild(text);
@ -261,16 +262,17 @@ export default class extends AbstractView {
if (chat == undefined) if (chat == undefined)
return ; 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 others = members_id.filter(id => id !== client.me.id);
let user = others[0];
let invite = document.getElementById("invite") || document.createElement("button"); let invite = document.getElementById("invite") || document.createElement("button");
let yes = document.getElementById("yes") || document.createElement("button"); let yes = document.getElementById("yes") || document.createElement("button");
let no = document.getElementById("no") || 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) { if (yes && no) {
yes.remove(); yes.remove();
@ -283,7 +285,7 @@ export default class extends AbstractView {
invite.innerText = "invite"; invite.innerText = "invite";
invite.title = "Invite to play a game"; invite.title = "Invite to play a game";
invite.onclick = async () => { invite.onclick = async () => {
await client.notice.send_invite(others); await this.AskGame.ask_game(user)
}; };
chat.appendChild(invite); chat.appendChild(invite);
} }
@ -296,14 +298,14 @@ export default class extends AbstractView {
yes.style.background = "green"; yes.style.background = "green";
yes.title = "Accept to play a game"; yes.title = "Accept to play a game";
yes.onclick = async () => { yes.onclick = async () => {
await client.notice.accept_invite(invitedBy); await this.AskGame.ask_game_accepted(user)
}; };
no.id = "no"; no.id = "no";
no.style.background = "red"; no.style.background = "red";
no.title = "Refuse to play a game"; no.title = "Refuse to play a game";
no.onclick = async () => { no.onclick = async () => {
await client.notice.refuse_invite(invitedBy); await this.AskGame.ask_game_refused(user)
}; };
chat.appendChild(yes); chat.appendChild(yes);