Compare commits
2 Commits
3c5bc987d9
...
3b025a2eca
| Author | SHA1 | Date |
|---|---|---|
|
|
3b025a2eca | |
|
|
222a424822 |
|
|
@ -10,6 +10,7 @@
|
|||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
|
|
@ -318,4 +319,7 @@ poetry.toml
|
|||
# LSP config files
|
||||
pyrightconfig.json
|
||||
|
||||
# VScode setting files
|
||||
.vscode/
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/python,pycharm,macos
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ async def register_email_verify(req: Request, user_email: UserResetEmailRequest)
|
|||
|
||||
|
||||
@users_router.put("/update", deprecated=False)
|
||||
async def user_modification(updated_user: UpdateUserRequest, current_user: User = Depends(get_current_user)):
|
||||
async def user_modification(updated_user: UpdateUserRequest, current_user: Tuple[User, Dict] = Depends(get_current_user)):
|
||||
"""
|
||||
|
||||
:param updated_user: Pydantic 模型验证修改内容(根据JSON内容修改对应字段)
|
||||
|
|
@ -169,7 +169,7 @@ async def forget_password(request: Request, user_request: UserResetPhoneRequest)
|
|||
@users_router.post("/auth/varify_code", deprecated=True)
|
||||
async def varify_code(data: VerifyPhoneCodeRequest, request: Request):
|
||||
redis = request.app.state.redis
|
||||
if not await service.varify_code(redis=redis, phone=data.phone, input_code=data.code):
|
||||
if not await service.verify_code(redis=redis, phone=data.phone, input_code=data.code):
|
||||
raise HTTPException(status_code=400, detail="验证码错误或已过期")
|
||||
return {"message": "验证成功,可以重置密码"}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ class User(Model):
|
|||
encrypted_phone = fields.CharField(max_length=11, description="用户手机号", null=True)
|
||||
language = fields.ForeignKeyField("models.Language", related_name="users", on_delete=fields.CASCADE)
|
||||
is_admin = fields.BooleanField(default=False, description="管理员权限")
|
||||
token_usage = fields.IntField(default=0, description="AI答疑使用量")
|
||||
|
||||
class Meta:
|
||||
table = "users"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
from tortoise import fields
|
||||
from tortoise.models import Model
|
||||
|
||||
class CommentFr(Model):
|
||||
id = fields.IntField(pk=True)
|
||||
user = fields.ForeignKeyField("models.User", related_name="comments_fr")
|
||||
comment_text = fields.TextField(description="The comment text")
|
||||
comment_word = fields.ForeignKeyField("models.WordlistFr", related_name="comments_fr")
|
||||
created_at = fields.DatetimeField(auto_now_add=True)
|
||||
updated_at = fields.DatetimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
table = "comments_fr"
|
||||
|
||||
class CommentJp(Model):
|
||||
id = fields.IntField(pk=True)
|
||||
user = fields.ForeignKeyField("models.User", related_name="comments_jp")
|
||||
comment_text = fields.TextField(description="The comment text")
|
||||
comment_word = fields.ForeignKeyField("models.WordlistJp", related_name="comments_jp")
|
||||
created_at = fields.DatetimeField(auto_now_add=True)
|
||||
updated_at = fields.DatetimeField(auto_now=True)
|
||||
supervised = fields.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
table = "comments_jp"
|
||||
|
||||
class ImprovingComment(Model):
|
||||
id = fields.IntField(pk=True)
|
||||
user = fields.ForeignKeyField("models.User", related_name="comments_improving")
|
||||
comment_text = fields.TextField(description="The comment text")
|
||||
created_at = fields.DatetimeField(auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
table = "comments_improving"
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
from typing import List, Tuple
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.api.user.user_schemas import UserSchema
|
||||
|
||||
|
||||
class CommentPiece(BaseModel):
|
||||
user_id: UserSchema
|
||||
comment_content: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class CommentSet(BaseModel):
|
||||
comments: List[Tuple[int, str, str]]
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class CommentUpload(BaseModel):
|
||||
comment_word: str
|
||||
comment_content: str
|
||||
lang: Literal["fr", "jp"]
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
3
main.py
3
main.py
|
|
@ -7,6 +7,7 @@ from tortoise.contrib.fastapi import register_tortoise
|
|||
|
||||
import app.models.signals
|
||||
from app.api.admin.router import admin_router
|
||||
from app.api.ai_assist.routes import ai_router
|
||||
from app.api.redis_test import redis_test_router
|
||||
from app.api.search import dict_search
|
||||
from app.api.translator import translator_router
|
||||
|
|
@ -52,5 +53,7 @@ app.include_router(redis_test_router, tags=["Redis Test-Only API"])
|
|||
|
||||
app.include_router(translator_router, tags=["Translation API"])
|
||||
|
||||
app.include_router(ai_router, tags=["AI Assist API"], prefix="/ai_assist")
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|
||||
|
|
|
|||
Loading…
Reference in New Issue