11
This commit is contained in:
33
app/api/v1/card_keys.py
Normal file
33
app/api/v1/card_keys.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""用户卡密激活。"""
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from app.dependencies import CurrentUser, DbSession
|
||||
from app.schemas.card_key import CardKeyActivateRequest, CardKeyActivateResponse
|
||||
from app.schemas.common import ApiResponse
|
||||
from app.services import card_key_activate as activate_service
|
||||
|
||||
router = APIRouter(prefix="/card-keys", tags=["卡密"])
|
||||
|
||||
|
||||
@router.post("/activate", response_model=ApiResponse[CardKeyActivateResponse])
|
||||
async def activate_card_key(
|
||||
body: CardKeyActivateRequest,
|
||||
current_user: CurrentUser,
|
||||
db: DbSession,
|
||||
) -> ApiResponse[CardKeyActivateResponse]:
|
||||
try:
|
||||
data = await activate_service.activate_card_key(
|
||||
db,
|
||||
user=current_user,
|
||||
serial_number=body.serial_number,
|
||||
)
|
||||
except activate_service.CardKeyActivateError as exc:
|
||||
return ApiResponse(ok=False, message=exc.message)
|
||||
|
||||
if data.card_type == "时长":
|
||||
message = f"激活成功,会员已延长 {data.added_days} 天"
|
||||
else:
|
||||
message = f"激活成功,已获得 {data.added_points} 点数"
|
||||
|
||||
return ApiResponse(ok=True, message=message, data=data)
|
||||
Reference in New Issue
Block a user