Skip to content

Commit

Permalink
Merge pull request #29 from Helithumper/27-payload_renaming
Browse files Browse the repository at this point in the history
Renamed `payload` to `user_jwt`
  • Loading branch information
jontyms authored Mar 17, 2024
2 parents 9cb1599 + 887007f commit a48eb12
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 33 deletions.
4 changes: 2 additions & 2 deletions routes/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ async def admin_post_discord_message(
request: Request,
token: Optional[str] = Cookie(None),
member_id: Optional[str] = "FAIL",
payload: dict = Body(None),
user_jwt: dict = Body(None),
):
"""
API endpoint that gets a specific user's data as JSON
Expand All @@ -202,7 +202,7 @@ async def admin_post_discord_message(
if not data:
return Errors.generate(request, 404, "User Not Found")

message_text = payload.get("msg")
message_text = user_jwt.get("msg")

res = Discord.send_message(data.get("discord_id"), message_text)

Expand Down
12 changes: 6 additions & 6 deletions routes/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ async def get_form(num: str):
async def get_form_html(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
num: str = 1,
):
# AWS dependencies
Expand All @@ -71,7 +71,7 @@ async def get_form_html(
data = Options.get_form_body(num)

# Get data from DynamoDB
user_data = table.get_item(Key={"id": payload.get("id")}).get("Item", None)
user_data = table.get_item(Key={"id": user_jwt.get("id")}).get("Item", None)

# Have Kennelish parse the data.
body = Kennelish.parse(data, user_data)
Expand All @@ -89,7 +89,7 @@ async def get_form_html(
async def post_form(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
num: str = 1,
):
# Get Kennelish data
Expand Down Expand Up @@ -143,7 +143,7 @@ async def post_form(
# Push data back to DynamoDB
try:
table.update_item(
Key={"id": payload.get("id")},
Key={"id": user_jwt.get("id")},
UpdateExpression=update_expression,
ExpressionAttributeValues=expression_attribute_values,
)
Expand All @@ -164,7 +164,7 @@ async def post_form(

# Create dictionary
table.update_item(
Key={"id": payload.get("id")},
Key={"id": user_jwt.get("id")},
# key_to_make is not user-supplied, rather, it's from the form JSON.
# if this noSQLi's, then it's because of an insider threat.
UpdateExpression=f"SET {key_to_make} = :dicty",
Expand All @@ -173,7 +173,7 @@ async def post_form(

# After all dicts are a thing, re-run query.
table.update_item(
Key={"id": payload.get("id")},
Key={"id": user_jwt.get("id")},
UpdateExpression=update_expression,
ExpressionAttributeValues=expression_attribute_values,
)
Expand Down
16 changes: 8 additions & 8 deletions routes/infra.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,19 +192,19 @@ async def get_root():
async def get_provision(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
conn = openstack.connect(cloud="hackucf_infra")

# Get single user
user = conn.identity.find_user(payload.get("infra_email"))
user = conn.identity.find_user(user_jwt.get("infra_email"))

# Get project
project = conn.identity.get_project(user.default_project_id)

# Provision everything
asyncio.create_task(
create_resource(project, payload.get("discord_id"))
create_resource(project, user_jwt.get("discord_id"))
) # runs teardown async
return {"msg": "Queued."}

Expand All @@ -231,7 +231,7 @@ async def get_teardown(request: Request, token: Optional[str] = Cookie(None)):
async def get_options(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
return get_shitty_database()

Expand Down Expand Up @@ -268,11 +268,11 @@ async def set_options(
async def get_infra(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
member_id = payload.get("id")
member_id = user_jwt.get("id")

if not (payload.get("is_full_member") or payload.get("infra_email")):
if not (user_jwt.get("is_full_member") or user_jwt.get("infra_email")):
return Errors.generate(
request, 403, "This API endpoint is restricted to Dues-Paying Members."
)
Expand Down Expand Up @@ -330,7 +330,7 @@ async def get_infra(
async def download_file(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
# Replace 'path/to/your/file.txt' with the actual path to your file
file_path = "./HackUCF.ovpn"
Expand Down
25 changes: 10 additions & 15 deletions routes/stripe.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
# Set Stripe API key.
stripe.api_key = options.get("stripe").get("api_key")


"""
Get API information.
"""
Expand All @@ -30,14 +31,14 @@
async def get_root(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
# AWS dependencies
dynamodb = boto3.resource("dynamodb")
table = dynamodb.Table(options.get("aws").get("dynamodb").get("table"))

# Get data from DynamoDB
user_data = table.get_item(Key={"id": payload.get("id")}).get("Item", None)
user_data = table.get_item(Key={"id": user_jwt.get("id")}).get("Item", None)

did_pay_dues = user_data.get("did_pay_dues", False)

Expand All @@ -47,9 +48,9 @@ async def get_root(
"pay.html",
{
"request": request,
"icon": payload["pfp"],
"name": payload["name"],
"id": payload["id"],
"icon": user_jwt["pfp"],
"name": user_jwt["name"],
"id": user_jwt["id"],
"did_pay_dues": did_pay_dues,
"is_nid": is_nid,
},
Expand All @@ -61,14 +62,14 @@ async def get_root(
async def create_checkout_session(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
# AWS dependencies
dynamodb = boto3.resource("dynamodb")
table = dynamodb.Table(options.get("aws").get("dynamodb").get("table"))

# Get data from DynamoDB
user_data = table.get_item(Key={"id": payload.get("id")}).get("Item", None)
user_data = table.get_item(Key={"id": user_jwt.get("id")}).get("Item", None)

try:
stripe_email = user_data.get("email")
Expand Down Expand Up @@ -109,32 +110,26 @@ async def webhook(request: Request):
print(e)
return HTTPException(status_code=400, detail="Malformed payload.")

# Handle the checkout.session.completed event
# Event Handling
if event["type"] == "checkout.session.completed":
session = event["data"]["object"]
# Retrieve the session. If you require line items in the response, you may include them by expanding line_items.
session = event["data"]["object"]

if session.payment_status == "paid":
# Mark as paid.
pay_dues(session)

print(session)

elif event["type"] == "checkout.session.async_payment_succeeded":
session = event["data"]["object"]
pay_dues(session)

# Passed signature verification
return HTTPException(status_code=200, detail="Success.")
# print(await request.json())
# return "yeet"


def pay_dues(session):
customer_email = session.get("customer_email")

print(customer_email)

# AWS dependencies
dynamodb = boto3.resource("dynamodb")
table = dynamodb.Table(options.get("aws").get("dynamodb").get("table"))
Expand Down
4 changes: 2 additions & 2 deletions routes/wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,13 +237,13 @@ async def get_root():
async def aapl_gen(
request: Request,
token: Optional[str] = Cookie(None),
payload: Optional[object] = {},
user_jwt: Optional[object] = {},
):
dynamodb = boto3.resource("dynamodb")
table = dynamodb.Table(options.get("aws").get("dynamodb").get("table"))

# Get data from DynamoDB
user_data = table.get_item(Key={"id": payload.get("id")}).get("Item", None)
user_data = table.get_item(Key={"id": user_jwt.get("id")}).get("Item", None)

p = apple_wallet(user_data)

Expand Down

0 comments on commit a48eb12

Please sign in to comment.