monitoring/repository/user_repository.py

41 lines
1.3 KiB
Python

# _*_ coding: utf-8 _*_
# @Time :2022/5/29 11:29
# @Email :508737091@qq.com
# @Author :qiangyanwen
# @File :user_repository.py
from sqlalchemy import or_
from sqlalchemy.orm import Session
from config.db_session import db_add, db_save
from config.factory import AutomationResponse
from entity.user_entity import UserFrom
from enums.enums import RegisterUser
from models.model import User
from utils.jwt_token import get_md5_pwd
def check_user_email(db: Session, user: UserFrom) -> bool:
user = db.query(User).filter(or_(User.username == user.username, User.email == user.email)).first()
if user:
return True
return False
def register_user(db: Session, user: UserFrom) -> dict:
us_er = User(**user.dict())
db_add(db, us_er)
return AutomationResponse.model_to_dict(us_er, "password")
async def login_user(db: Session, username, password):
password = get_md5_pwd(password)
user = await db.query(User).filter(User.username == username, User.password == password).first()
if user.username and user.email:
return True, user
return False, RegisterUser.LOGIN_USER_ERROR.value
async def active_user(db: Session, user_id: int, status: int):
user = await db.query(User).filter(User.id == user_id).first()
user.status = status
db_save(db, user)