aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/oauth.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-03-29 11:05:13 +0100
committerGravatar Gareth Coles <[email protected]>2018-03-29 11:05:13 +0100
commit355cf068a7920a28026623229b35264352d98b00 (patch)
treef0e35c3c278468bd2e8bf4422cca6e4c85689dc1 /pysite/oauth.py
parentAttempt to fix HTTPS and more OAuth issues (diff)
Fix OAuth DB insertions
Diffstat (limited to 'pysite/oauth.py')
-rw-r--r--pysite/oauth.py32
1 files changed, 22 insertions, 10 deletions
diff --git a/pysite/oauth.py b/pysite/oauth.py
index a4b5bdb1..d5a3a15a 100644
--- a/pysite/oauth.py
+++ b/pysite/oauth.py
@@ -46,16 +46,28 @@ class OauthBackend(BaseBackend):
def add_user(self, token_data: dict, user_data: dict, session_id: str):
session["session_id"] = session_id
- self.db.insert(OAUTH_DATABASE, {"id": session_id,
- "access_token": token_data["access_token"],
- "refresh_token": token_data["refresh_token"],
- "expires_at": token_data["expires_at"],
- "snowflake": user_data["id"]})
-
- self.db.insert("users", {"user_id": user_data["id"],
- "username": user_data["username"],
- "discriminator": user_data["discriminator"],
- "email": user_data["email"]})
+ self.db.insert(
+ OAUTH_DATABASE,
+ {
+ "id": session_id,
+ "access_token": token_data["access_token"],
+ "refresh_token": token_data["refresh_token"],
+ "expires_at": token_data["expires_at"],
+ "snowflake": int(user_data["id"])
+ },
+ conflict="replace"
+ )
+
+ self.db.insert(
+ "users",
+ {
+ "user_id": int(user_data["id"]),
+ "username": user_data["username"],
+ "discriminator": user_data["discriminator"],
+ "email": user_data["email"]
+ },
+ conflict="update"
+ )
def get_user(self) -> dict:
resp = discord.get(DISCORD_API_ENDPOINT + "/users/@me") # 'discord' is a request.Session with oauth information