Implement getting users public info

This commit is contained in:
Curt Spark 2024-04-24 15:06:28 +01:00
parent 180cfba7c1
commit 68c301c95c
2 changed files with 35 additions and 0 deletions

28
main.py
View File

@ -134,6 +134,34 @@ def getuserIDByAuthToken(authToken: Annotated[str | None, Header()] = None):
print(msg)
return {"success": False, "authToken": None, "message": msg}
@app.get("/api/publicInfo/{userID}")
def getpublicInfo(userID: int):
try:
if userHandler.checkIDExistence(dbConnection, userID):
return {
"success": True,
"username": userHandler.getUserInfoByID(dbConnection, userID, "username"),
"firstName": userHandler.getUserInfoByID(dbConnection, userID, "firstname"),
"lastName": userHandler.getUserInfoByID(dbConnection, userID, "lastname"),
"message": "Get public info succeeded!"
}
else:
return {
"success": False,
"username": None,
"firstName": None,
"lastName": None,
"message": "Get public info failed! UserID provided does not exist."
}
except Exception as error:
return {
"success": False,
"username": None,
"firstName": None,
"lastName": None,
"message": "Get public info failed! Unexpected server error. " + repr(error)
}
# GET
# /api/userByAuthToken

View File

@ -17,6 +17,9 @@ def createUser(dbConnection: psycopg2.extensions.connection, username: str, firs
['username', 'firstname', 'lastname', 'description', 'country', 'theme', 'accentcolor', 'passwordhash'],
[username, firstName, lastName, description, country, theme, accentColor, securityHandler.hashPassword(password)])
def checkIDExistence(dbConnection: psycopg2.extensions.connection, userID: int) -> bool:
return dbHandler.checkFieldValueExistence(dbConnection, "users", "id", userID)
def checkUserExistence(dbConnection: psycopg2.extensions.connection, username: str) -> bool:
return dbHandler.checkFieldValueExistence(dbConnection, "users", "username", username)
@ -32,6 +35,10 @@ def getIDByUsername(dbConnection: psycopg2.extensions.connection, username: str)
)
return int(dbHandler._execQuery(dbConnection, sanitisedQuery)[0][0])
def getUserInfoByID(dbConnection: psycopg2.extensions.connection, userID: int, userField: str) -> str:
debugPrint("Attempting to get " + userField + " of userID " + str(userID) + "...")
return str(dbHandler.getFieldValueByID(dbConnection, "users", userID, userField))
def getIDByAuthToken(dbConnection: psycopg2.extensions.connection, authToken: str) -> int:
debugPrint("Attempting to get ID from authToken...")
sanitisedQuery = sql.SQL("""