ser_no.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from typing import Any, List
  2. from fastapi.responses import RedirectResponse
  3. from fastapi import APIRouter, Body, Depends, HTTPException, Request
  4. from fastapi.encoders import jsonable_encoder
  5. from pydantic.networks import EmailStr
  6. from sqlalchemy.orm import Session
  7. from app import crud, models, schemas
  8. from app.api import deps
  9. from app.core.config import settings
  10. from datetime import datetime
  11. router = APIRouter()
  12. @router.get("/add-time")
  13. def add_time(
  14. *,
  15. db: Session = Depends(deps.get_db),
  16. current_user: models.User = Depends(deps.get_current_active_user),
  17. ser_no: models.SerialNumber = Depends(deps.get_avairable_serial_number)
  18. )-> Any:
  19. user_in = schemas.UserUpdate(available_time=current_user.available_time+ser_no.time)
  20. crud.user.update(db, db_obj=current_user, obj_in=user_in)
  21. ser_no_in = schemas.SerialNumberUpdate(code=ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=current_user.id)
  22. crud.serial_number.update(db, db_obj=ser_no, obj_in=ser_no_in)
  23. return {"time_added": ser_no.time}
  24. @router.get("/add-time-no-token")
  25. def add_time_no_token(
  26. request: Request,
  27. ser_no: models.SerialNumber = Depends(deps.get_avairable_serial_number)
  28. )-> Any:
  29. print(f"{request.base_url}login?ser_no={ser_no.code}")
  30. #return RedirectResponse(f"{request.base_url}login?ser_no={ser_no.code}")
  31. return RedirectResponse(f"http://localhost:5173/login?add-time-code={ser_no.code}")