aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lucas Lindström <[email protected]>2020-10-06 22:40:14 +0200
committerGravatar Lucas Lindström <[email protected]>2020-10-06 22:41:09 +0200
commit15086b4ab392a8bdc6c33414f0c4e2a294f4a2ef (patch)
tree6cc0dc250c60be6f726165c9570dda93bd32c6b8
parentMerge branch 'feat/397-398-metricity-db-and-api' of https://github.com/dement... (diff)
Added total message count to metricity data response.
-rw-r--r--postgres/init.sql16
-rw-r--r--pydis_site/apps/api/viewsets/bot/user.py9
2 files changed, 24 insertions, 1 deletions
diff --git a/postgres/init.sql b/postgres/init.sql
index fd29ddbc..45ad440c 100644
--- a/postgres/init.sql
+++ b/postgres/init.sql
@@ -32,3 +32,19 @@ INSERT INTO users VALUES (
'{}',
NULL
);
+
+CREATE TABLE messages (
+ id varchar(255),
+ author_id varchar(255) references users(id),
+ primary key(id)
+);
+
+INSERT INTO messages VALUES(
+ 0,
+ 0
+);
+
+INSERT INTO messages VALUES(
+ 1,
+ 0
+);
diff --git a/pydis_site/apps/api/viewsets/bot/user.py b/pydis_site/apps/api/viewsets/bot/user.py
index 059bc0f0..b3d880cc 100644
--- a/pydis_site/apps/api/viewsets/bot/user.py
+++ b/pydis_site/apps/api/viewsets/bot/user.py
@@ -76,7 +76,8 @@ class UserViewSet(BulkCreateModelMixin, ModelViewSet):
... "is_guild": True,
... "is_verified": False,
... "public_flags": {},
- ... "verified_at": null
+ ... "verified_at": None,
+ ... "total_messages": 2
...}
#### Status codes
@@ -157,9 +158,15 @@ class UserViewSet(BulkCreateModelMixin, ModelViewSet):
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
+ 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)