Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 832014b

Browse files
migrated to sqlmodel
1 parent bedf645 commit 832014b

File tree

28 files changed

+222
-347
lines changed

28 files changed

+222
-347
lines changed

‎README.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@
4242
- [`Docker Compose`](https://docs.docker.com/compose/) With a single command, create and start all the services from your configuration.
4343
- [`NGINX`](https://nginx.org/en/) High-performance low resource consumption web server used for Reverse Proxy and Load Balancing.
4444

45+
> \[!TIP\]
46+
> If you want the `SQLAlchemy + Pydantic` version instead, head to [Fastapi-boilerplate](https://github.com/igorbenav/FastAPI-boilerplate).
47+
4548
## 1. Features
4649

4750
- ⚡️ Fully async

‎pyproject.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ arq = "^0.25.0"
3131
gunicorn = "^22.0.0"
3232
bcrypt = "^4.1.1"
3333
fastcrud = "^0.12.0"
34+
sqlmodel = "^0.0.18"
3435

3536

3637
[build-system]

‎src/app/api/dependencies.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from ..crud.crud_tier import crud_tiers
1414
from ..crud.crud_users import crud_users
1515
from ..models.user import User
16-
from ..schemas.rate_limit import sanitize_path
16+
from ..models.rate_limit import sanitize_path
1717

1818
logger = logging.getLogger(__name__)
1919

‎src/app/api/v1/posts.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
from ...core.utils.cache import cache
1111
from ...crud.crud_posts import crud_posts
1212
from ...crud.crud_users import crud_users
13-
from ...schemas.post import PostCreate, PostCreateInternal, PostRead, PostUpdate
14-
from ...schemas.user import UserRead
13+
from ...models.post import PostCreate, PostCreateInternal, PostRead, PostUpdate
14+
from ...models.user import UserRead
1515

1616
router = APIRouter(tags=["posts"])
1717

‎src/app/api/v1/rate_limits.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from ...core.exceptions.http_exceptions import DuplicateValueException, NotFoundException, RateLimitException
1010
from ...crud.crud_rate_limit import crud_rate_limits
1111
from ...crud.crud_tier import crud_tiers
12-
from ...schemas.rate_limit import RateLimitCreate, RateLimitCreateInternal, RateLimitRead, RateLimitUpdate
12+
from ...models.rate_limit import RateLimitCreate, RateLimitCreateInternal, RateLimitRead, RateLimitUpdate
1313

1414
router = APIRouter(tags=["rate_limits"])
1515

‎src/app/api/v1/tasks.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from ...api.dependencies import rate_limiter
77
from ...core.utils import queue
8-
from ...schemas.job import Job
8+
from ...models.job import Job
99

1010
router = APIRouter(prefix="/tasks", tags=["tasks"])
1111

‎src/app/api/v1/tiers.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from ...core.db.database import async_get_db
99
from ...core.exceptions.http_exceptions import DuplicateValueException, NotFoundException
1010
from ...crud.crud_tier import crud_tiers
11-
from ...schemas.tier import TierCreate, TierCreateInternal, TierRead, TierUpdate
11+
from ...models.tier import TierCreate, TierCreateInternal, TierRead, TierUpdate
1212

1313
router = APIRouter(tags=["tiers"])
1414

‎src/app/api/v1/users.py‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
from ...crud.crud_rate_limit import crud_rate_limits
1212
from ...crud.crud_tier import crud_tiers
1313
from ...crud.crud_users import crud_users
14-
from ...models.tier import Tier
15-
from ...schemas.tier import TierRead
16-
from ...schemas.user import UserCreate, UserCreateInternal, UserRead, UserTierUpdate, UserUpdate
14+
from ...models.tier import Tier, TierRead
15+
from ...models.user import UserCreate, UserCreateInternal, UserRead, UserTierUpdate, UserUpdate
1716

1817
router = APIRouter(tags=["users"])
1918

‎src/app/core/db/database.py‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
from sqlalchemy.ext.asyncio import create_async_engine
22
from sqlalchemy.ext.asyncio.session import AsyncSession
3-
from sqlalchemy.orm import DeclarativeBase, MappedAsDataclass, sessionmaker
3+
from sqlalchemy.orm import sessionmaker
44

55
from ..config import settings
66

77

8-
class Base(DeclarativeBase, MappedAsDataclass):
9-
pass
10-
11-
128
DATABASE_URI = settings.POSTGRES_URI
139
DATABASE_PREFIX = settings.POSTGRES_ASYNC_PREFIX
1410
DATABASE_URL = f"{DATABASE_PREFIX}{DATABASE_URI}"

‎src/app/core/db/token_blacklist.py‎

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
from datetime import datetime
2+
from sqlmodel import SQLModel, Field
23

3-
from sqlalchemy import DateTime, String
4-
from sqlalchemy.orm import Mapped, mapped_column
5-
6-
from .database import Base
7-
8-
9-
class TokenBlacklist(Base):
10-
__tablename__ = "token_blacklist"
11-
12-
id: Mapped[int] = mapped_column("id", autoincrement=True, nullable=False, unique=True, primary_key=True, init=False)
13-
token: Mapped[str] = mapped_column(String, unique=True, index=True)
14-
expires_at: Mapped[datetime] = mapped_column(DateTime)
4+
class TokenBlacklist(SQLModel, table=True):
5+
id: int = Field(default=None, primary_key=True, nullable=False)
6+
token: str = Field(index=True, nullable=False, unique=True)
7+
expires_at: datetime = Field(nullable=False)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /