feat: add user and post management with CRUD operations; include tests for functionality
All checks were successful
Build and Push to Private Registry101 / build (push) Successful in 10s
All checks were successful
Build and Push to Private Registry101 / build (push) Successful in 10s
This commit is contained in:
52
users.py
Normal file
52
users.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import sessionmaker, Session, declarative_base
|
||||
from sqlalchemy import create_engine, Column, Integer,String, ForeignKey
|
||||
|
||||
import db
|
||||
|
||||
class User(db.Base):
|
||||
__tablename__ = "users"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
name = Column(String, index=True)
|
||||
email = Column(String, unique=True, index=True)
|
||||
password = Column(String)
|
||||
|
||||
|
||||
router = APIRouter(prefix="/users")
|
||||
|
||||
@router.get("")
|
||||
def get_users(db: Session = Depends(db.get_db)):
|
||||
return db.query(User).all()
|
||||
|
||||
@router.get("/{id}")
|
||||
def get_user( id, db: Session = Depends(db.get_db)):
|
||||
db_user = db.query(User).filter(User.id == id).first()
|
||||
return db_user
|
||||
|
||||
@router.post("")
|
||||
def create_user( user: dict, db: Session = Depends(db.get_db)):
|
||||
db_user = User(**user)
|
||||
db.add(db_user)
|
||||
db.commit()
|
||||
db.refresh(db_user)
|
||||
return {"message":"User created successfully","user":db_user}
|
||||
|
||||
@router.put("/{id}")
|
||||
def update_user( id, user: dict, db: Session = Depends(db.get_db)):
|
||||
db_user = db.query(User).filter(User.id == id).first()
|
||||
if "name" in user:
|
||||
db_user.name = user["name"]
|
||||
if "email" in user:
|
||||
db_user.email = user["email"]
|
||||
if "password" in user:
|
||||
db_user.password = user["password"]
|
||||
db.commit()
|
||||
db.refresh(db_user)
|
||||
return {"message":"User updated successfully","user":db_user}
|
||||
|
||||
@router.delete("/{id}")
|
||||
def delete_user(id, db: Session = Depends(db.get_db)):
|
||||
db_user = db.query(User).filter(User.id == id).first()
|
||||
db.delete(db_user)
|
||||
db.commit()
|
||||
return {"message":"User deleted successfully","user":db_user}
|
||||
Reference in New Issue
Block a user