29 lines
788 B
Python
29 lines
788 B
Python
from fuware.core.security.hasher import get_hasher
|
|
from fuware.db.models.users.users import User
|
|
from fuware.schemas import UserCreate
|
|
from sqlalchemy.orm import Session
|
|
|
|
|
|
class RepositoryUsers:
|
|
def __init__(self):
|
|
self.user = User()
|
|
|
|
def get_all(self, skip: int = 0, limit: int = 100):
|
|
return self.user.query.offset(skip).limit(limit).all()
|
|
|
|
def get_by_username(self, username: str):
|
|
return self.user.query.filter_by(username=username).first()
|
|
|
|
def create(self, db: Session, user: UserCreate):
|
|
try:
|
|
hasher = get_hasher()
|
|
db_user = User(username=user.username, password=hasher.hash(user.password), name=user.name)
|
|
db.add(db_user)
|
|
db.commit()
|
|
except Exception:
|
|
db.rollback()
|
|
raise
|
|
|
|
db.refresh(db_user)
|
|
return db_user
|