43 lines
1.5 KiB
Python
43 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):
|
|
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)
|