diff --git a/endpoints/login.post.py b/endpoints/login.post.py index df5aa08..e6c7cf2 100644 --- a/endpoints/login.post.py +++ b/endpoints/login.post.py @@ -1,25 +1,48 @@ from fastapi import APIRouter, Depends, HTTPException -from core.auth import get_current_user_dummy from core.database import fake_users_db +import uuid +import random +import string router = APIRouter() -@router.post("/login") -async def login_demo( - username: str = "demo", - password: str = "password" +@router.post("/signup-codes") +async def generate_signup_codes( + count: int = 1, + length: int = 8, + prefix: str = "" ): - """Demo login endpoint""" - user = fake_users_db.get(username) - if not user or user["password"] != password: - raise HTTPException(status_code=400, detail="Invalid credentials") + """Generate unique signup invitation codes""" + codes = [] + existing_codes = [user.get("signup_code") for user in fake_users_db.values()] + + for _ in range(count): + while True: + code = prefix + ''.join(random.choices( + string.ascii_uppercase + string.digits, + k=length + )) + if code not in existing_codes: + codes.append(code) + break + + # Store codes in database for future validation + batch_id = str(uuid.uuid4()) + for code in codes: + fake_users_db[f"signup_code_{code}"] = { + "code": code, + "batch_id": batch_id, + "used": False, + "created_at": "2024-01-01T00:00:00Z" # Demo timestamp + } return { - "message": "Login successful (demo)", - "user": username, - "token": "dummy_jwt_token_123", - "features": { - "rate_limit": 100, - "expires_in": 3600 + "message": f"Successfully generated {count} signup codes", + "batch_id": batch_id, + "codes": codes, + "metadata": { + "prefix": prefix, + "length": length, + "expires_in": "30 days" } - } + } \ No newline at end of file