优化草稿返回值和参数

This commit is contained in:
Hommy
2025-09-07 22:10:32 +08:00
parent a07e9633ce
commit 282d412b36
6 changed files with 15 additions and 10 deletions
+3
View File
@@ -10,3 +10,6 @@ DRAFT_URL = os.getenv("DRAFT_URL", "https://cm.jcaigc.cn/openapi/v1/get_draft")
# 将容器内的文件路径转成一个下载路径,执行替换操作,即将/app/ -> https://cm.jcaigc.cn/
DOWNLOAD_URL = os.getenv("DOWNLOAD_URL", "https://cm.jcaigc.cn/")
# 草稿提示URL
TIP_URL = os.getenv("TIP_URL", "https://docs.jcaigc.cn/")
+2 -1
View File
@@ -12,7 +12,8 @@ class CustomError(Enum):
AUTHENTICATION_FAILED = (1004, "认证失败")
# ===== 业务错误码 (2000-2999) =====
DRAFT_CREATE_FAILED = (2001, "草稿创建失败")
INVALID_DRAFT_URL = (2001, "无效的草稿URL")
DRAFT_CREATE_FAILED = (2002, "草稿创建失败")
# ===== 系统错误码 (9000-9999) =====
INTERNAL_SERVER_ERROR = (9998, "系统内部错误")
+4 -4
View File
@@ -1,4 +1,3 @@
from email import message
from fastapi import APIRouter, Request, Depends
from src.schemas.create_draft import CreateDraftRequest, CreateDraftResponse
from src.schemas.add_videos import AddVideosRequest, AddVideosResponse
@@ -7,6 +6,7 @@ from src.schemas.gen_video import GenVideoRequest, GenVideoResponse
from src.schemas.get_draft import GetDraftRequest, GetDraftResponse
from src import service
from typing import Annotated
import config
router = APIRouter(prefix="/v1", tags=["v1"])
@@ -23,7 +23,7 @@ def create_draft(request: Request, cdr: CreateDraftRequest):
height=cdr.height
)
return CreateDraftResponse(draft_url=draft_url)
return CreateDraftResponse(draft_url=draft_url, tip_url=config.TIP_URL)
@router.post("/save_draft", response_model=SaveDraftResponse)
def save_draft(request: Request, sdr: SaveDraftRequest):
@@ -31,11 +31,11 @@ def save_draft(request: Request, sdr: SaveDraftRequest):
保存剪映草稿 (v1版本)
"""
# 调用service层处理业务逻辑
draft_url, message = service.save_draft(
draft_url = service.save_draft(
draft_url=sdr.draft_url,
)
return SaveDraftResponse(message=message, draft_url=draft_url)
return SaveDraftResponse(draft_url=draft_url)
@router.post("/add_videos", response_model=AddVideosResponse)
def add_videos(request: Request, avr: AddVideosRequest):
+1
View File
@@ -10,3 +10,4 @@ class CreateDraftRequest(BaseModel):
class CreateDraftResponse(BaseModel):
"""创建草稿响应参数"""
draft_url: str = Field(default="", description="草稿URL")
tip_url: str = Field(default="", description="草稿提示URL,获取帮助文档")
-1
View File
@@ -8,5 +8,4 @@ class SaveDraftRequest(BaseModel):
class SaveDraftResponse(BaseModel):
"""创建草稿响应参数"""
message: str = Field(default="", description="响应消息")
draft_url: str = Field(default="", description="草稿URL")
+5 -4
View File
@@ -2,11 +2,12 @@ from src.utils.logger import logger
import src.pyJianYingDraft as draft
from src.utils.draft_cache import DRAFT_CACHE
from src.utils import helper
from exceptions import CustomException, CustomError
import config
import os
def save_draft(draft_url: str) -> (str, str):
def save_draft(draft_url: str) -> str:
"""
保存剪映草稿的业务逻辑
@@ -21,7 +22,8 @@ def save_draft(draft_url: str) -> (str, str):
# 从URL中提取草稿ID
draft_id = helper.get_url_param(draft_url, "draft_id")
if (not draft_id) or (draft_id not in DRAFT_CACHE):
return "", "无效的草稿URL"
logger.info("invalid draft url: %s", draft_url)
raise CustomException(CustomError.INVALID_DRAFT_URL)
# 从缓存中获取草稿
script = DRAFT_CACHE[draft_id]
@@ -30,5 +32,4 @@ def save_draft(draft_url: str) -> (str, str):
script.save()
logger.info(f"save draft success: %s", os.path.join(config.DRAFT_DIR, draft_id))
return draft_url, "草稿保存成功"
return draft_url