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 = [
path("", chat.ChannelView.as_view(), name="chats_page"),
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"),
]

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);