Skip to content

Commit 8c30c80

Browse files
authored
Merge pull request #15 from NCTUCSUnion/dev
feat: add Gemini API key management for users, including new endpoint…
2 parents 33e969d + d97c9f2 commit 8c30c80

16 files changed

Lines changed: 2168 additions & 4 deletions

File tree

backend/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ ENV PATH="/app/.venv/bin:$PATH"
2020
ENTRYPOINT []
2121

2222
# CMD ["fastapi", "dev", "--host", "0.0.0.0", "main.py", "--root-path", "/api"]
23-
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--root-path", "/api"]
23+
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--root-path", "/api", "--workers", "4"]
24+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""add_gemini_api_key_to_user
2+
3+
Revision ID: 850cafd2d390
4+
Revises: e353baf54db9
5+
Create Date: 2025-10-05 00:23:47.362879
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
import sqlmodel.sql.sqltypes
13+
14+
15+
# revision identifiers, used by Alembic.
16+
revision: str = '850cafd2d390'
17+
down_revision: Union[str, Sequence[str], None] = 'e353baf54db9'
18+
branch_labels: Union[str, Sequence[str], None] = None
19+
depends_on: Union[str, Sequence[str], None] = None
20+
21+
22+
def upgrade() -> None:
23+
"""Upgrade schema."""
24+
# ### commands auto generated by Alembic - please adjust! ###
25+
op.add_column('users', sa.Column('gemini_api_key', sqlmodel.sql.sqltypes.AutoString(), nullable=True))
26+
# ### end Alembic commands ###
27+
28+
29+
def downgrade() -> None:
30+
"""Downgrade schema."""
31+
# ### commands auto generated by Alembic - please adjust! ###
32+
op.drop_column('users', 'gemini_api_key')
33+
# ### end Alembic commands ###

backend/app/api/api.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from fastapi import APIRouter
22

3-
from app.api.services import auth, courses, archives, meme, users, statistics
3+
from app.api.services import auth, courses, archives, meme, users, statistics, ai_exam
44

55
api_router = APIRouter()
66

@@ -9,4 +9,5 @@
99
api_router.include_router(archives.router, prefix="/archives", tags=["archives"])
1010
api_router.include_router(users.router, prefix="/users", tags=["users"])
1111
api_router.include_router(meme.router, tags=["meme"])
12-
api_router.include_router(statistics.router, tags=["statistics"])
12+
api_router.include_router(statistics.router, tags=["statistics"])
13+
api_router.include_router(ai_exam.router, prefix="/ai-exam", tags=["ai-exam"])

0 commit comments

Comments
 (0)