feat: 初始化工程
This commit is contained in:
13
routers/__init__.py
Normal file
13
routers/__init__.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from .user import router as user_router
|
||||
from .record import router as record_router
|
||||
from .like import router as like_router
|
||||
from .comment import router as comment_router
|
||||
from .file import router as file_router
|
||||
|
||||
routers = [
|
||||
user_router,
|
||||
record_router,
|
||||
like_router,
|
||||
comment_router,
|
||||
file_router
|
||||
]
|
||||
23
routers/comment.py
Normal file
23
routers/comment.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.comment import CommentCreate, CommentUpdate
|
||||
from service import comment_service
|
||||
|
||||
router = APIRouter(prefix="/comments", tags=["评论"])
|
||||
|
||||
|
||||
@router.post("", response_model=bool, summary="发表评论")
|
||||
def create(comment_in: CommentCreate, db: Session = Depends(get_db)):
|
||||
return comment_service.create_comment(db, comment_in)
|
||||
|
||||
|
||||
@router.put("/{comment_id}", response_model=bool, summary="编辑评论")
|
||||
def update(comment_id: int, comment_in: CommentUpdate, db: Session = Depends(get_db)):
|
||||
return comment_service.update_comment(db, comment_id, comment_in)
|
||||
|
||||
|
||||
@router.delete("/{comment_id}", summary="删除评论")
|
||||
def delete(comment_id: int, current_user_id: int, db: Session = Depends(get_db)):
|
||||
return comment_service.delete_comment(db, comment_id, current_user_id)
|
||||
10
routers/file.py
Normal file
10
routers/file.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from fastapi import APIRouter, Query, UploadFile, File
|
||||
from service import file_service
|
||||
|
||||
router = APIRouter(prefix="/file", tags=["文件"])
|
||||
|
||||
|
||||
@router.post("/upload", summary="上传文件", response_model=str)
|
||||
async def upload(md5: str = Query(..., description="文件MD5值"),
|
||||
file: UploadFile = File(..., description="要上传的文件")):
|
||||
return await file_service.upload_file(md5, file)
|
||||
18
routers/like.py
Normal file
18
routers/like.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.like import LikeCreate
|
||||
from service import like_service
|
||||
|
||||
router = APIRouter(prefix="/likes", tags=["点赞"])
|
||||
|
||||
|
||||
@router.post("", summary="点赞")
|
||||
def like(like_in: LikeCreate, db: Session = Depends(get_db)):
|
||||
return like_service.create_like(db, like_in)
|
||||
|
||||
|
||||
@router.delete("", summary="取消点赞")
|
||||
def unlike(record_id: int, user_id: int, db: Session = Depends(get_db)):
|
||||
return like_service.delete_like(db, record_id, user_id)
|
||||
37
routers/record.py
Normal file
37
routers/record.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.record import RecordCreate, RecordUpdate, RecordResponse
|
||||
from service import record_service
|
||||
|
||||
router = APIRouter(prefix="/records", tags=["记录"])
|
||||
|
||||
|
||||
@router.post("", response_model=bool, summary="发布记录")
|
||||
def create(record_in: RecordCreate, db: Session = Depends(get_db)):
|
||||
return record_service.create_record(db, record_in)
|
||||
|
||||
|
||||
@router.get("", response_model=List[RecordResponse], summary="获取所有记录")
|
||||
def list_all(skip: int = 0, limit: int = 20, db: Session = Depends(get_db)):
|
||||
return record_service.get_all_records(db, skip, limit)
|
||||
|
||||
|
||||
@router.get("/{record_id}", response_model=RecordResponse, summary="获取记录详情")
|
||||
def get(record_id: int, db: Session = Depends(get_db)):
|
||||
record = record_service.get_record_by_id(db, record_id)
|
||||
if not record:
|
||||
raise HTTPException(status_code=404, detail="记录不存在")
|
||||
return record
|
||||
|
||||
|
||||
@router.put("/{record_id}", response_model=bool, summary="更新记录")
|
||||
def update(record_id: int, record_in: RecordUpdate, db: Session = Depends(get_db)):
|
||||
return record_service.update_record(db, record_id, record_in)
|
||||
|
||||
|
||||
@router.delete("/{record_id}", summary="删除记录")
|
||||
def delete(record_id: int, db: Session = Depends(get_db)):
|
||||
return record_service.delete_record(db, record_id)
|
||||
31
routers/user.py
Normal file
31
routers/user.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.user import UserCreate, UserUpdate, UserResponse
|
||||
from service import user_service
|
||||
|
||||
router = APIRouter(prefix="/users", tags=["用户"])
|
||||
|
||||
|
||||
@router.post("", response_model=UserResponse, summary="创建用户")
|
||||
def create(user_in: UserCreate, db: Session = Depends(get_db)):
|
||||
return user_service.create_user(db, user_in)
|
||||
|
||||
|
||||
@router.get("/{user_id}", response_model=UserResponse, summary="获取用户详情")
|
||||
def get(user_id: int, db: Session = Depends(get_db)):
|
||||
user = user_service.get_user_by_id(db, user_id)
|
||||
if not user:
|
||||
raise HTTPException(status_code=404, detail="用户不存在")
|
||||
return user
|
||||
|
||||
|
||||
@router.put("/{user_id}", response_model=UserResponse, summary="更新用户")
|
||||
def update(user_id: int, user_in: UserUpdate, db: Session = Depends(get_db)):
|
||||
return user_service.update_user(db, user_id, user_in)
|
||||
|
||||
|
||||
@router.delete("/{user_id}", summary="删除用户")
|
||||
def delete(user_id: int, db: Session = Depends(get_db)):
|
||||
return user_service.delete_user(db, user_id)
|
||||
Reference in New Issue
Block a user