From 2b4ade6b6ea49fd23ef7821432a51ca2e82da690 Mon Sep 17 00:00:00 2001 From: KittenTM Date: Sun, 15 Mar 2026 04:44:59 +0100 Subject: [PATCH] add equipmentLast functionality --- main.py | 2 ++ routes/equipment/equipment.py | 21 ++++++++------- routes/equipment/equipment_history.py | 38 +++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 routes/equipment/equipment_history.py diff --git a/main.py b/main.py index 4bf8c88..b4d38d2 100644 --- a/main.py +++ b/main.py @@ -8,6 +8,7 @@ from routes import logout from routes import boss #yes meow meow import me please... i want to be embedded into my code... :pleading_face: from routes import me +from routes.equipment import equipment_history from routes.equipment import equipment from services.boss_retrieval import process_boss_file from contextlib import asynccontextmanager @@ -116,6 +117,7 @@ app.include_router(sessionid_check.router, prefix="/api/v1") app.include_router(logout.router, prefix="/api/v1") app.include_router(boss.router, prefix="/api/v1") app.include_router(me.router, prefix="/api/v1") +app.include_router(equipment_history.router, prefix="/api/v1") app.include_router(equipment.router, prefix="/api/v1") if __name__ == '__main__': diff --git a/routes/equipment/equipment.py b/routes/equipment/equipment.py index a74309e..d1a7c56 100644 --- a/routes/equipment/equipment.py +++ b/routes/equipment/equipment.py @@ -1,6 +1,6 @@ from fastapi import APIRouter, Request, Depends, HTTPException from sqlalchemy.orm import Session as DBSession -from database import SessionLocal, User, Session as UserSession, Equipment +from database import SessionLocal, User, Session as UserSession, Equipment, EquipmentLast from services import auth from config import cipher import json @@ -14,8 +14,8 @@ def get_db(): finally: db.close() -@router.get("/me/equipment/history") -async def get_history(request: Request, db: DBSession = Depends(get_db)): +@router.get("/me/equipment") +async def get_equipment_composite(request: Request, db: DBSession = Depends(get_db)): session_id = request.cookies.get("session_id") db_session = db.query(UserSession).filter(UserSession.id == session_id).first() @@ -29,10 +29,13 @@ async def get_history(request: Request, db: DBSession = Depends(get_db)): token_data = auth.get_token(user.username, decrypted_pass) profile = json.loads(auth.get_profile(token_data["token"])) pid_val = int(profile.get("pid")) - print(f"Fetching History for PID: {pid_val}") - - results = db.query(Equipment).filter(Equipment.PId == pid_val).all() - return results + mii_name = profile.get("name", user.username) + last_gear = db.query(EquipmentLast).filter(EquipmentLast.PId == pid_val).first() + + return { + "mii_name": mii_name, + "last_equipped": last_gear + } except Exception as e: - print(f"Error in history route: {e}") - return [] \ No newline at end of file + print(f"Equipment Route Error: {e}") + return {"mii_name": user.username, "last_equipped": None} \ No newline at end of file diff --git a/routes/equipment/equipment_history.py b/routes/equipment/equipment_history.py new file mode 100644 index 0000000..a74309e --- /dev/null +++ b/routes/equipment/equipment_history.py @@ -0,0 +1,38 @@ +from fastapi import APIRouter, Request, Depends, HTTPException +from sqlalchemy.orm import Session as DBSession +from database import SessionLocal, User, Session as UserSession, Equipment +from services import auth +from config import cipher +import json + +router = APIRouter() + +def get_db(): + db = SessionLocal() + try: + yield db + finally: + db.close() + +@router.get("/me/equipment/history") +async def get_history(request: Request, db: DBSession = Depends(get_db)): + session_id = request.cookies.get("session_id") + db_session = db.query(UserSession).filter(UserSession.id == session_id).first() + + if not db_session: + raise HTTPException(status_code=401) + + user = db.query(User).filter(User.username == db_session.username).first() + + try: + decrypted_pass = cipher.decrypt(user.spfn_pass_enc.encode()).decode() + token_data = auth.get_token(user.username, decrypted_pass) + profile = json.loads(auth.get_profile(token_data["token"])) + pid_val = int(profile.get("pid")) + print(f"Fetching History for PID: {pid_val}") + + results = db.query(Equipment).filter(Equipment.PId == pid_val).all() + return results + except Exception as e: + print(f"Error in history route: {e}") + return [] \ No newline at end of file