aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar Lucas Lindström <[email protected]>2020-10-06 23:56:47 +0200
committerGravatar Lucas Lindström <[email protected]>2020-10-06 23:56:47 +0200
commite83f445a9b8d2db4523e261759bb73ea83ed54c3 (patch)
tree524e9004a88d99bf4882aa8f3affe915718c814f /pydis_site
parentAdd missing metricity db url environment variable to CI pipeline script. (diff)
Reduce metricity db setup script and API response to the bare necessities.
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/api/viewsets/bot/user.py29
1 files changed, 4 insertions, 25 deletions
diff --git a/pydis_site/apps/api/viewsets/bot/user.py b/pydis_site/apps/api/viewsets/bot/user.py
index b3d880cc..1b1af841 100644
--- a/pydis_site/apps/api/viewsets/bot/user.py
+++ b/pydis_site/apps/api/viewsets/bot/user.py
@@ -1,5 +1,3 @@
-import json
-
from django.db import connections
from rest_framework import status
from rest_framework.decorators import action
@@ -65,18 +63,7 @@ class UserViewSet(BulkCreateModelMixin, ModelViewSet):
#### Response format
>>> {
- ... "id": "0",
- ... "name": "foo",
- ... "avatar_hash": "bar",
- ... "joined_at": "2020-10-06T18:17:30.101677",
- ... "created_at": "2020-10-06T18:17:30.101677",
- ... "is_staff": False,
- ... "opt_out": False,
- ... "bot": False,
- ... "is_guild": True,
- ... "is_verified": False,
- ... "public_flags": {},
- ... "verified_at": None,
+ ... "verified_at": "2020-10-06T21:54:23.540766",
... "total_messages": 2
...}
@@ -155,18 +142,10 @@ class UserViewSet(BulkCreateModelMixin, ModelViewSet):
def metricity_data(self, request: Request, pk: str = None) -> Response:
"""Request handler for metricity_data endpoint."""
user = self.get_object()
- column_keys = ["id", "name", "avatar_hash", "joined_at", "created_at", "is_staff",
- "opt_out", "bot", "is_guild", "is_verified", "public_flags", "verified_at"]
with connections['metricity'].cursor() as cursor:
- # Get user data
- query = f"SELECT {','.join(column_keys)} FROM users WHERE id = '%s'"
- cursor.execute(query, [user.id])
- values = cursor.fetchone()
- data = dict(zip(column_keys, values))
- data["public_flags"] = json.loads(data["public_flags"])
-
- # Get message count
+ data = {}
+ cursor.execute("SELECT verified_at FROM users WHERE id = '%s'", [user.id])
+ data["verified_at"], = cursor.fetchone()
cursor.execute("SELECT COUNT(*) FROM messages WHERE author_id = '%s'", [user.id])
data["total_messages"], = cursor.fetchone()
-
return Response(data, status=status.HTTP_200_OK)