fix: 修复标题/配音创建500、素材库列表500、CORS配置 #91

Merged
xiaoxia merged 1 commits from fix/api-500-errors-cors into develop 2026-06-28 21:33:31 +08:00
Owner

修复内容

Bug 1: POST /api/v1/titles → 500

  • 根因: titles.py:54 调用 user_repository.get_by_id() — 方法不存在
  • 修复: get_by_idfind_by_id

Bug 2: POST /api/v1/voices → 500(同一 bug)

  • 根因: voices.py:58 同样调用 get_by_id()
  • 修复: get_by_idfind_by_id

Bug 3: GET /api/v1/asset-libraries → 500

  • 根因: project_repository.py:62shared_users.contains([user_id]) 在 JSON 列上使用 @> 操作符,但 PostgreSQL 的 @> 只支持 JSONB 类型
  • 修复: cast(shared_users, JSONB).contains([user_id])

Bug 4: CORS 配置不匹配

  • 根因: 生产环境默认 CORS 只有 https://xiaoxiajianji.com,但前端在 https://saas.xiaoxiajianji.com
  • 修复: 添加 https://saas.xiaoxiajianji.com 到默认 allow_origins

影响范围

  • 4 个文件,8 行改动
  • 无数据库迁移,无破坏性变更
## 修复内容 ### Bug 1: POST /api/v1/titles → 500 - **根因**: `titles.py:54` 调用 `user_repository.get_by_id()` — 方法不存在 - **修复**: `get_by_id` → `find_by_id` ### Bug 2: POST /api/v1/voices → 500(同一 bug) - **根因**: `voices.py:58` 同样调用 `get_by_id()` - **修复**: `get_by_id` → `find_by_id` ### Bug 3: GET /api/v1/asset-libraries → 500 - **根因**: `project_repository.py:62` — `shared_users.contains([user_id])` 在 JSON 列上使用 `@>` 操作符,但 PostgreSQL 的 `@>` 只支持 JSONB 类型 - **修复**: `cast(shared_users, JSONB).contains([user_id])` ### Bug 4: CORS 配置不匹配 - **根因**: 生产环境默认 CORS 只有 `https://xiaoxiajianji.com`,但前端在 `https://saas.xiaoxiajianji.com` - **修复**: 添加 `https://saas.xiaoxiajianji.com` 到默认 allow_origins ## 影响范围 - 4 个文件,8 行改动 - 无数据库迁移,无破坏性变更
xiaoxia added 1 commit 2026-06-28 21:33:24 +08:00
fix: 修复标题/配音创建500、素材库列表500、CORS缺失
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
47533e7037
- titles.py/voices.py: get_by_id → find_by_id(方法名错误导致AttributeError)
- project_repository.py: cast shared_users to JSONB for @> operator(JSON列不支持@>)
- main.py: CORS allow_origins 添加 https://saas.xiaoxiajianji.com
xiaoxia merged commit bf44bd8d9a into develop 2026-06-28 21:33:31 +08:00
Sign in to join this conversation.