-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
93 lines (59 loc) · 2.66 KB
/
main.py
File metadata and controls
93 lines (59 loc) · 2.66 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
from typing import List
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.responses import JSONResponse
from sqlalchemy.orm import Session
from sqlalchemy.sql.sqltypes import JSON
from crud import get_user_by_email, get_users_descending, get_users_ascending, get_user_by_id, delete_user_by_id, create_blogpost
from database import SessionLocal, engine
import models
from schemas import BlogPostCreate, User, UserCreate
models.Base.metadata.create_all(bind=engine)
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/user/", response_model=User)
def create_user(user: UserCreate, db: Session = Depends(get_db)):
db_user = get_user_by_email(db, email=user.email)
if db_user:
raise HTTPException(status_code=400, detail="Email already registered")
create_user(db=db, user=user)
return JSONResponse(status_code=status.HTTP_201_CREATED, content={'message': 'user created'})
@app.get("/user/descending_id", response_model=List[User])
def get_all_users_descending(db: Session = Depends(get_db)):
users = get_users_descending(db)
return JSONResponse(status_code=status.HTTP_200_OK, content=users)
@app.get("/user/ascending_id", response_model=List[User])
def get_all_users_ascending(db: Session = Depends(get_db)):
users = get_users_ascending(db)
return JSONResponse(status_code=status.HTTP_200_OK, content=users)
@app.get("/user/{user_id}", response_model=User)
def get_one_user(user_id: int, db: Session = Depends(get_db)):
user = get_user_by_id(db, user_id)
if user:
return JSONResponse(status_code=status.HTTP_200_OK, content=user)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND,
detail="User not found")
@app.delete("/user/{user_id}")
def delete_user(user_id: int, db: Session = Depends(get_db)):
user = delete_user_by_id(db, user_id)
return JSONResponse(status_code=status.HTTP_200_OK, content={'msg': 'user deleted'})
@app.post("/blog_post/{user_id}")
def create_blog_post(user_id: int, blogpost: BlogPostCreate, db: Session = Depends(get_db)):
user = get_user_by_id(db, user_id)
if not user:
return HTTPException(status_code=status.HTTP_404_NOT_FOUND,
detail="User not found")
create_blogpost(db=db, blogpost=blogpost)
return JSONResponse(status_code=status.HTTP_201_CREATED, content={"message": "blogpost created"})
def get_all_blog_posts(user_id: int):
...
@app.get("/blog_post/{blog_post_id}")
def get_one_blog_post(blog_post_id: int):
...
@app.delete("/blog_post/{blog_post_id}")
def delete_blog_post(blog_post_id: int):
...