sql_app: add username in regsiter
Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
parent
866182c25e
commit
3153a7db8d
4
run-tls
Executable file → Normal file
4
run-tls
Executable file → Normal file
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
uvicorn server:app --ssl-certfile server.crt --ssl-keyfile server.key --port 4433 --host 0.0.0.0 --no-server-header --reload
|
source venv/bin/activate
|
||||||
|
uvicorn sql_app.main:app --ssl-certfile server.crt --ssl-keyfile server.key --port 4433 --host 0.0.0.0 --no-server-header
|
||||||
|
@ -12,6 +12,9 @@ def get_user(db: Session, user_id: int):
|
|||||||
def get_user_by_email(db: Session, email: str):
|
def get_user_by_email(db: Session, email: str):
|
||||||
return db.query(models.User).filter(models.User.email == email).first()
|
return db.query(models.User).filter(models.User.email == email).first()
|
||||||
|
|
||||||
|
def get_user_by_username(db: Session, username: str):
|
||||||
|
return db.query(models.User).filter(models.User.username == username).first()
|
||||||
|
|
||||||
|
|
||||||
def get_users(db: Session, skip: int = 0, limit: int = 100):
|
def get_users(db: Session, skip: int = 0, limit: int = 100):
|
||||||
return db.query(models.User).offset(skip).limit(limit).all()
|
return db.query(models.User).offset(skip).limit(limit).all()
|
||||||
@ -22,7 +25,7 @@ def create_user(db: Session, user: schemas.UserCreate):
|
|||||||
salt = key[1]
|
salt = key[1]
|
||||||
hashed_pass = key[0]
|
hashed_pass = key[0]
|
||||||
# TODO: check if user already exists? based on name,email ...
|
# TODO: check if user already exists? based on name,email ...
|
||||||
db_user = models.User(email=user.email, hashed_password=hashed_pass, passwd_salt=salt)
|
db_user = models.User(email=user.email, username=user.username,hashed_password=hashed_pass, passwd_salt=salt)
|
||||||
db.add(db_user)
|
db.add(db_user)
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(db_user)
|
db.refresh(db_user)
|
||||||
|
@ -21,11 +21,16 @@ def get_db():
|
|||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
|
|
||||||
@app.post("/users/", response_model=schemas.User)
|
@app.post("/users/reg", response_model=schemas.User)
|
||||||
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
|
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
|
||||||
db_user = crud.get_user_by_email(db, email=user.email)
|
db_user = crud.get_user_by_email(db, email=user.email)
|
||||||
if db_user:
|
if db_user:
|
||||||
raise HTTPException(status_code=400, detail="Email already registered")
|
raise HTTPException(status_code=400, detail="Email already registered")
|
||||||
|
|
||||||
|
db_user = crud.get_user_by_username(db, username=user.username)
|
||||||
|
if db_user:
|
||||||
|
raise HTTPException(status_code=400, detail="Username already registerd")
|
||||||
|
|
||||||
return crud.create_user(db=db, user=user)
|
return crud.create_user(db=db, user=user)
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ class User(Base):
|
|||||||
|
|
||||||
id = Column(Integer, primary_key=True, index=True)
|
id = Column(Integer, primary_key=True, index=True)
|
||||||
email = Column(String, unique=True, index=True)
|
email = Column(String, unique=True, index=True)
|
||||||
|
username = Column(String, unique=True, index=True)
|
||||||
hashed_password = Column(String)
|
hashed_password = Column(String)
|
||||||
passwd_salt = Column(String)
|
passwd_salt = Column(String)
|
||||||
is_active = Column(Boolean, default=True)
|
is_active = Column(Boolean, default=True)
|
||||||
|
@ -22,6 +22,7 @@ class IotEntity(IotEntityBase):
|
|||||||
|
|
||||||
class UserBase(BaseModel):
|
class UserBase(BaseModel):
|
||||||
email: str
|
email: str
|
||||||
|
username: str
|
||||||
|
|
||||||
|
|
||||||
class UserCreate(UserBase):
|
class UserCreate(UserBase):
|
||||||
|
Loading…
Reference in New Issue
Block a user