Skip to content

Commit e595330

Browse files
committed
Add crud functionality
1 parent 794e5c7 commit e595330

File tree

3 files changed

+40
-9
lines changed

3 files changed

+40
-9
lines changed

app/crud.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from sqlalchemy.orm import Session
22
from fastapi import HTTPException
3-
from app import schemas, models
3+
import schemas, models
44

55

66
def get_user(db: Session, user_id: int):

app/main.py

+37-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,46 @@
1-
from typing import Union
2-
3-
from fastapi import FastAPI
1+
import uvicorn
2+
from fastapi import FastAPI, HTTPException, Depends
3+
from sqlalchemy.orm import Session
4+
import crud, models, schemas
5+
from database import engine, get_db, SessionLocal
46

57
app = FastAPI()
68

9+
models.Base.metadata.create_all(bind=engine)
710

811
@app.get("/")
912
def read_root():
1013
return {"Hello": "World"}
1114

15+
@app.post("/users/", response_model=schemas.User)
16+
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
17+
return crud.create_user(db=db, user=user)
18+
19+
@app.get("/users/", response_model=list[schemas.User])
20+
def read_users(skip:int=0, limit:int=100, db: Session = Depends(get_db)):
21+
users = crud.get_users(db, skip=skip, limit=limit)
22+
return users
23+
24+
@app.get("/users/{user_id}/",response_model=schemas.User)
25+
def get_user(user_id:int, db:Session=Depends(get_db)):
26+
db_user = crud.get_user(db,user_id =user_id )
27+
if db_user is None:
28+
raise HTTPException(status_code=404, detail="User not found")
29+
return db_user
30+
31+
@app.put("/users/{user_id}", response_model=schemas.User)
32+
def update_user(user_id: int, user: schemas.UserCreate, db: Session = Depends(get_db)):
33+
db_user = crud.update_user(db, user_id=user_id, updated_user=user)
34+
if db_user is None:
35+
raise HTTPException(status_code=404, detail="User not found")
36+
return db_user
37+
38+
@app.delete("/users/{user_id}", response_model=schemas.User)
39+
def delete_user(user_id: int, db: Session = Depends(get_db)):
40+
db_user = crud.delete_user(db, user_id=user_id)
41+
if db_user is None:
42+
raise HTTPException(status_code=404, detail="User not found")
43+
return db_user
1244

13-
@app.get("/items/{item_id}")
14-
def read_item(item_id: int, q: Union[str, None] = None):
15-
return {"item_id": item_id, "q": q}
45+
if __name__ == "__main__":
46+
uvicorn.run("main:app", reload=True)

app/models.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from sqlalchemy import Boolean, Column, Integer, String, DateTime
22
from sqlalchemy.sql import func
3-
from app.database import Base
3+
from database import Base
44

55
class User(Base):
66
__tablename__ = "users"
@@ -9,4 +9,4 @@ class User(Base):
99
premium_user = Column(Boolean)
1010
payment_id = Column(String(255))
1111
created_at = Column(DateTime(timezone=True), default=func.now() )
12-
updated_at = Column(DateTime(timezone=True), default=func.now(), onupdate=func.now() )
12+
updated_at = Column(DateTime(timezone=True), default=func.now(), onupdate=func.now())

0 commit comments

Comments
 (0)