From b08a90226ac657ea7fa52f9dfde0b4a6f24b1c95 Mon Sep 17 00:00:00 2001 From: tomoron Date: Sun, 25 Aug 2024 21:53:32 +0200 Subject: [PATCH] messages work with database --- .../djangoserver/file/server/server/models.py | 2 + .../typeRequests/getPrivateListMessage.py | 35 ++++---- .../server/typeRequests/getPrivateListUser.py | 84 ++++++++++--------- .../server/typeRequests/sendPrivateMessage.py | 17 ++-- .../djangoserver/file/server/test_data.sql | 7 ++ 5 files changed, 82 insertions(+), 63 deletions(-) create mode 100644 docker-compose/requirements/djangoserver/file/server/test_data.sql diff --git a/docker-compose/requirements/djangoserver/file/server/server/models.py b/docker-compose/requirements/djangoserver/file/server/server/models.py index 9320aa5..057baca 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/models.py +++ b/docker-compose/requirements/djangoserver/file/server/server/models.py @@ -6,12 +6,14 @@ class User(models.Model): mail = models.EmailField(unique=True) password = models.CharField(max_length=100) id42 = models.DecimalField(max_digits=15, decimal_places=0, null=True, unique=True) + pfp = models.CharField(max_length=1024) class Message(models.Model): id = models.AutoField(primary_key=True) date = models.DateTimeField(auto_now_add=True) sender = models.ForeignKey("User",on_delete=models.SET_NULL, null=True, related_name="sender") to = models.ForeignKey("User", on_delete=models.CASCADE, related_name="to") + content = models.TextField() class Game(models.Model): id = models.AutoField(primary_key=True) diff --git a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/getPrivateListMessage.py b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/getPrivateListMessage.py index 6f0901c..a5999bf 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/getPrivateListMessage.py +++ b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/getPrivateListMessage.py @@ -6,11 +6,15 @@ # By: edbernar +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/08/03 15:10:23 by edbernar #+# #+# # -# Updated: 2024/08/23 23:55:50 by tomoron ### ########.fr # +# Updated: 2024/08/25 21:23:08 by tomoron ### ########.fr # # # # **************************************************************************** # import asyncio import json +from ..models import Message, User -data = [ - { - "name": "Nessundorma", - "status": "online", - "pfp": "https://wallpapers-clan.com/wp-content/uploads/2023/05/cool-pfp-02.jpg", - "id": 145564 - }, - { - "name": "Succotash", - "status": "offline", - "pfp": "https://i.pinimg.com/200x/28/75/96/287596f98304bf1adc2c411619ae8fef.jpg", - "id": 256981 - }, - { - "name": "Astropower", - "status": "online", - "pfp": "https://ashisheditz.com/wp-content/uploads/2024/03/cool-anime-pfp-demon-slayer-HD.jpg", - "id": 301547 - }, - { - "name": "Assaultive", - "status": "offline", - "pfp": "https://i1.sndcdn.com/artworks-1Li0JIJrQGlojD3y-AEiNkw-t500x500.jpg", - "id": 432448 - }, - { - "name": "Redshock", - "status": "offline", - "pfp": "https://cdn.pfps.gg/pfps/7094-boy-pfp.png", - "id": 543211 - }, - { - "name": "Parley", - "status": "offline", - "pfp": "https://pbs.twimg.com/media/EscE6ckU0AA-Uhe.png", - "id": 654123 - } -] +#data = [ +# { +# "name": "Nessundorma", +# "status": "online", +# "pfp": "https://wallpapers-clan.com/wp-content/uploads/2023/05/cool-pfp-02.jpg", +# "id": 145564 +# }, +# { +# "name": "Succotash", +# "status": "offline", +# "pfp": "https://i.pinimg.com/200x/28/75/96/287596f98304bf1adc2c411619ae8fef.jpg", +# "id": 256981 +# }, +# { +# "name": "Astropower", +# "status": "online", +# "pfp": "https://ashisheditz.com/wp-content/uploads/2024/03/cool-anime-pfp-demon-slayer-HD.jpg", +# "id": 301547 +# }, +# { +# "name": "Assaultive", +# "status": "offline", +# "pfp": "https://i1.sndcdn.com/artworks-1Li0JIJrQGlojD3y-AEiNkw-t500x500.jpg", +# "id": 432448 +# }, +# { +# "name": "Redshock", +# "status": "offline", +# "pfp": "https://cdn.pfps.gg/pfps/7094-boy-pfp.png", +# "id": 543211 +# }, +# { +# "name": "Parley", +# "status": "offline", +# "pfp": "https://pbs.twimg.com/media/EscE6ckU0AA-Uhe.png", +# "id": 654123 +# } +#] def getPrivateListUser(socket, content=None): # |TOM| Faire une requête à la base de données pour récupérer la liste des # utilisateurs qui doivent apparaitre dans la liste du chat privé # (ceux qui ont eu conversation avec l'utilisateur) # Si user existe pas, faire ça : socket.sendError("User not found", 9008) + id = socket.scope["session"].get("id", 0) + res = User.objects.raw("SELECT DISTINCT server_user.id AS id,'online' AS status, username, pfp FROM server_user RIGHT JOIN server_message ON server_message.to_id=server_user.id WHERE sender_id=%s;", [id]) + data = [] + for x in res: + data.append({"name":x.username, "status":x.status, "pfp":x.pfp, "id":x.id}) socket.send(text_data=json.dumps({"type": "private_list_user", "content": data})) diff --git a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/sendPrivateMessage.py b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/sendPrivateMessage.py index f37e455..99d40ff 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/typeRequests/sendPrivateMessage.py +++ b/docker-compose/requirements/djangoserver/file/server/server/typeRequests/sendPrivateMessage.py @@ -6,11 +6,12 @@ # By: edbernar