feat: 初始化工程

This commit is contained in:
2026-09-06 16:07:00 +08:00
commit 30b5bf2aa1
36 changed files with 1166 additions and 0 deletions

13
routers/__init__.py Normal file
View 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
View 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
View 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
View 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
View 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
View 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)