Fix miner wallet queries and add tests

This commit is contained in:
Alexa Amundson
2025-11-16 01:50:36 -06:00
parent b2f933762a
commit b2379fddd7
6 changed files with 188 additions and 13 deletions

View File

@@ -6,6 +6,7 @@ from sqlalchemy import select
from app.database import get_db
from app.models.user import User
from app.models.blockchain import Wallet
from app.schemas.user import UserCreate, UserResponse, Token, UserLogin
from app.auth import (
verify_password,
@@ -38,7 +39,7 @@ async def register(user_data: UserCreate, db: AsyncSession = Depends(get_db)):
)
# Generate wallet
wallet_address, private_key = BlockchainService.generate_wallet_address()
wallet_address, private_key, public_key = BlockchainService.generate_wallet_address()
# Create user
user = User(
@@ -53,6 +54,19 @@ async def register(user_data: UserCreate, db: AsyncSession = Depends(get_db)):
)
db.add(user)
await db.flush()
wallet = Wallet(
user_id=user.id,
address=wallet_address,
private_key=private_key,
public_key=public_key,
balance=user.balance,
label="Primary Wallet",
is_primary=True,
)
db.add(wallet)
await db.commit()
await db.refresh(user)
@@ -115,3 +129,10 @@ async def get_current_user_info(
async def logout():
"""Logout (client should delete token)"""
return {"message": "Successfully logged out"}
async def get_current_user(
current_user: User = Depends(get_current_active_user)
) -> User:
"""Reusable dependency that returns the authenticated user."""
return current_user