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
 | 
			
		||||
 | 
			
		||||
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):
 | 
			
		||||
    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):
 | 
			
		||||
    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]
 | 
			
		||||
    hashed_pass = key[0]
 | 
			
		||||
    # 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.commit()
 | 
			
		||||
    db.refresh(db_user)
 | 
			
		||||
 | 
			
		||||
@ -21,11 +21,16 @@ def get_db():
 | 
			
		||||
        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)):
 | 
			
		||||
    db_user = crud.get_user_by_email(db, email=user.email)
 | 
			
		||||
    if db_user:
 | 
			
		||||
        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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,7 @@ class User(Base):
 | 
			
		||||
 | 
			
		||||
    id = Column(Integer, primary_key=True, index=True)
 | 
			
		||||
    email = Column(String, unique=True, index=True)
 | 
			
		||||
    username = Column(String, unique=True, index=True)
 | 
			
		||||
    hashed_password = Column(String)
 | 
			
		||||
    passwd_salt = Column(String)
 | 
			
		||||
    is_active = Column(Boolean, default=True)
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ class IotEntity(IotEntityBase):
 | 
			
		||||
 | 
			
		||||
class UserBase(BaseModel):
 | 
			
		||||
    email: str
 | 
			
		||||
    username: str
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UserCreate(UserBase):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user