feat: invite code
This commit is contained in:
		@@ -38,6 +38,8 @@ async def get_current_user(
 | 
			
		||||
        user = await session.get(User, user_id)
 | 
			
		||||
        if not user:
 | 
			
		||||
            raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Invalid credentials')
 | 
			
		||||
        if user.is_deleted or user.is_blocked:
 | 
			
		||||
            raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Пользователь заблокирован или удален')
 | 
			
		||||
        return user
 | 
			
		||||
    except JWTError as e:
 | 
			
		||||
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Invalid token')
 | 
			
		||||
@@ -82,15 +84,12 @@ class AuthService(BaseService):
 | 
			
		||||
            delta = datetime.now() - invite_code.created_at
 | 
			
		||||
            if delta.seconds >= constants.INVITE_CODE_EXPIRY:
 | 
			
		||||
                raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Код приглашения устарел')
 | 
			
		||||
            user = User(
 | 
			
		||||
                telegram_id=request.id,
 | 
			
		||||
                is_admin=False,
 | 
			
		||||
                role_key=UserRole.user
 | 
			
		||||
            )
 | 
			
		||||
            self.session.add(user)
 | 
			
		||||
            user = await self.session.get(User, invite_code.user_id)
 | 
			
		||||
            if not user:
 | 
			
		||||
                raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Пользователь не найден')
 | 
			
		||||
            user.telegram_id = request.id
 | 
			
		||||
            await self.session.flush()
 | 
			
		||||
            invite_code.is_activated = True
 | 
			
		||||
            invite_code.activated_by_id = user.id
 | 
			
		||||
            await self.session.commit()
 | 
			
		||||
        if not user:
 | 
			
		||||
            raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Пользователь не найден')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user