File size: 1,615 Bytes
c053e7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import app.sql.models as models
import app.core.schemas as schemas

from sqlalchemy.orm import Session
from passlib.context import CryptContext

pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")


def hash_password(password: str):
    return pwd_context.hash(password)


def create_prompt(prompt: str, user_id: int, db: Session):
    db_prompt = models.Prompt(prompt=prompt, user_id=user_id)
    db.add(db_prompt)
    db.commit()
    db.refresh(db_prompt)
    return db_prompt


def get_all_prompts(db: Session):
    return db.query(models.Prompt).all()


def get_prompt_by_user_id(user_id: int, db: Session):
    return db.query(models.Prompt).filter(models.Prompt.user_id == user_id).all()


def create_user(user: schemas.UserCreate, db: Session):
    hashed_password = hash_password(user.password)
    db_user = models.User(username=user.username, password=hashed_password)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user


def update_user(user: schemas.UserUpdate, db: Session):
    db_user = db.query(models.User).filter(
        models.User.user_id == user.user_id).first()
    db_user.is_active = user.is_active
    db_user.is_superuser = user.is_superuser
    db.commit()
    db.refresh(db_user)
    return db_user


def get_all_users(db: Session):
    return db.query(models.User).all()


def get_user_by_user_id(user_id: int, db: Session):
    return db.query(models.User).filter(models.User.user_id == user_id).first()


def get_user_by_username(username: str, db: Session):
    return db.query(models.User).filter(models.User.username == username).first()