36 lines
1.1 KiB
Python
36 lines
1.1 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
|
|
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")
|
|
|
|
|
|
def login_user(db: Session, username, password):
|
|
password = get_md5_pwd(password)
|
|
user = 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
|