sovisticated-j8tak3/endpoints/api/v1/endpoint.post.py
2025-03-18 13:32:59 +00:00

48 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from core.database import fake_users_db
import uuid
import random
import string
router = APIRouter()
@router.post("/signup-codes")
async def generate_signup_codes(
count: int = 1,
length: int = 8,
prefix: str = ""
):
"""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": f"Successfully generated {count} signup codes",
"batch_id": batch_id,
"codes": codes,
"metadata": {
"prefix": prefix,
"length": length,
"expires_in": "30 days"
}
}