fuware-be/backend/services/user/user_service.py

44 lines
1.5 KiB
Python

from sqlalchemy.orm import Session
from backend.core.security.hasher import get_hasher
from backend.core.security import create_access_token
from backend.core.security.security import create_refresh_token
from backend.repos import RepositoryUsers
from backend.schemas import UserRequest, UserCreate
from backend.services._base_service import BaseService
class UserService(BaseService):
def __init__(self):
self.repos = RepositoryUsers()
def generate_token(self, user_id: str):
access_token = create_access_token(data={"sub": str(user_id)})
refresh_token = create_refresh_token(data={"sub": str(user_id)})
return access_token, refresh_token
def get_by_username(self, username: str):
return self.repos.get_by_username(username)
def get_access_token(self, user_id: str):
return create_access_token(data={"sub": str(user_id)})
def get_all(self, skip: int = 0, limit: int = 100):
return self.repos.get_all(skip=skip, limit=limit)
def get_by_id(self, user_id: str):
return self.repos.get_by_id(user_id)
def create(self, db: Session, user: UserCreate):
return self.repos.create(db=db, user=user)
def check_exist(self, user: UserRequest):
print(f"user: {user}")
db_user = self.get_by_username(username=user.username)
if not db_user:
return False
if not get_hasher().verify(password=user.password, hashed=db_user.password):
return False
return db_user
def update(self, db: Session, user: UserCreate, user_id: str):
return self.repos.update(db=db, user=user, user_id=user_id)