feat: referal spec on registration
This commit is contained in:
@@ -28,9 +28,21 @@ async def signup(req: UserRegistration, session: AsyncSession = Depends(get_db))
|
||||
raise HTTPException(status_code=409, detail="User already exists")
|
||||
|
||||
password_hash = hash_password(req.password)
|
||||
user = await users_repo.create(username=req.username, hashed_password=password_hash)
|
||||
referal_id = None
|
||||
if req.referal_code:
|
||||
referal = await users_repo.get_user_by_ref_code(req.referal_code)
|
||||
referal_id = referal.id if referal else None
|
||||
|
||||
user = await users_repo.create(
|
||||
username=req.username, hashed_password=password_hash, referal_id=referal_id
|
||||
)
|
||||
return JSONResponse(
|
||||
UserInfo(username=user.username, telegram_id=user.telegram_id).model_dump(),
|
||||
UserInfo(
|
||||
username=user.username,
|
||||
telegram_id=user.telegram_id,
|
||||
subscription=None,
|
||||
referal_code=user.referal_code,
|
||||
).model_dump(),
|
||||
status_code=201,
|
||||
)
|
||||
raise HTTPException(status_code=400, detail="Unsupported provider")
|
||||
|
||||
@@ -15,5 +15,8 @@ async def get_me(ctx: AuthContext = Depends(get_auth_context)):
|
||||
addon_ids=[a.id for a in ctx.user.subscription.addons],
|
||||
)
|
||||
return UserInfo(
|
||||
username=ctx.user.username, telegram_id=ctx.user.telegram_id, subscription=sub_data
|
||||
username=ctx.user.username,
|
||||
telegram_id=ctx.user.telegram_id,
|
||||
subscription=sub_data,
|
||||
referal_code=ctx.user.referal_code,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user