Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/api/auth.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import typing

import litestar
Expand All @@ -24,7 +24,7 @@ async def retrieve_user_handler(token: Token, _connection: ASGIConnection) -> Ac
jwt_cookie_auth: typing.Final = JWTCookieAuth[Actor](
retrieve_user_handler=retrieve_user_handler,
token_secret=settings.jwt_secret,
default_token_expiration=datetime.timedelta(seconds=settings.jwt_lifetime_seconds),
default_token_expiration=dt.timedelta(seconds=settings.jwt_lifetime_seconds),
secure=settings.jwt_cookie_secure,
# Anchored: Litestar matches the joined patterns with an unanchored findall.
exclude=[
Expand Down
14 changes: 7 additions & 7 deletions app/database/tables.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import enum
import typing
import uuid
Expand Down Expand Up @@ -73,8 +73,8 @@ class ChatMembersTable(BigIntBase):
chat_id: orm.Mapped[int] = orm.mapped_column(sa.ForeignKey("chats.id"))
user_id: orm.Mapped[int] = orm.mapped_column(sa.ForeignKey("users.id"), index=True)
last_read_message_id: orm.Mapped[int | None] = orm.mapped_column(sa.BigInteger, nullable=True)
joined_at: orm.Mapped[datetime.datetime] = orm.mapped_column(
DateTimeUTC(timezone=True), default=lambda: datetime.datetime.now(tz=datetime.UTC)
joined_at: orm.Mapped[dt.datetime] = orm.mapped_column(
DateTimeUTC(timezone=True), default=lambda: dt.datetime.now(tz=dt.UTC)
)


Expand All @@ -89,8 +89,8 @@ class MessagesTable(BigIntBase):
user_id: orm.Mapped[int | None] = orm.mapped_column(sa.ForeignKey("users.id"), nullable=True, index=True)
idempotency_key: orm.Mapped[uuid.UUID] = orm.mapped_column(GUID)
text: orm.Mapped[str] = orm.mapped_column(sa.String)
created_at: orm.Mapped[datetime.datetime] = orm.mapped_column(
DateTimeUTC(timezone=True), default=lambda: datetime.datetime.now(tz=datetime.UTC)
created_at: orm.Mapped[dt.datetime] = orm.mapped_column(
DateTimeUTC(timezone=True), default=lambda: dt.datetime.now(tz=dt.UTC)
)
edited_at: orm.Mapped[datetime.datetime | None] = orm.mapped_column(DateTimeUTC(timezone=True), nullable=True)
deleted_at: orm.Mapped[datetime.datetime | None] = orm.mapped_column(DateTimeUTC(timezone=True), nullable=True)
edited_at: orm.Mapped[dt.datetime | None] = orm.mapped_column(DateTimeUTC(timezone=True), nullable=True)
deleted_at: orm.Mapped[dt.datetime | None] = orm.mapped_column(DateTimeUTC(timezone=True), nullable=True)
6 changes: 3 additions & 3 deletions app/schemas/api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import uuid
from collections.abc import Iterable
from typing import Annotated, Any, Self
Expand Down Expand Up @@ -81,8 +81,8 @@ class Message(Base):
chat_id: PositiveInt
user_id: PositiveInt | None = None
text: str
created_at: datetime.datetime
edited_at: datetime.datetime | None = None
created_at: dt.datetime
edited_at: dt.datetime | None = None


class Messages(Collection[Message]):
Expand Down
4 changes: 2 additions & 2 deletions app/use_cases/delete_message.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import dataclasses
import datetime
import datetime as dt

from db_retry import Transaction, postgres_retry

Expand Down Expand Up @@ -31,7 +31,7 @@ async def __call__(self, *, actor: Actor, message_id: int) -> None:
if message.deleted_at is not None:
# DELETE is idempotent; a second delete is not an error, unlike an edit.
return
message.deleted_at = datetime.datetime.now(tz=datetime.UTC)
message.deleted_at = dt.datetime.now(tz=dt.UTC)
await self.messages_repository.update(message, item_id=message_id)

chat = await self.chats_repository.get_one(id=message.chat_id)
Expand Down
4 changes: 2 additions & 2 deletions app/use_cases/edit_message.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import dataclasses
import datetime
import datetime as dt

from db_retry import Transaction, postgres_retry

Expand Down Expand Up @@ -32,7 +32,7 @@ async def __call__(self, *, actor: Actor, message_id: int, data: EditMessageRequ
msg = "This message has been deleted"
raise ConflictError(msg)
message.text = data.text
message.edited_at = datetime.datetime.now(tz=datetime.UTC)
message.edited_at = dt.datetime.now(tz=dt.UTC)
updated = await self.messages_repository.update(message, item_id=message_id)
await self.transaction.commit()
# Safe inside the block: commit() ended the transaction, so __aexit__ only closes.
Expand Down
4 changes: 2 additions & 2 deletions tests/api/test_auth_api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt

import pytest
import sqlalchemy as sa
Expand Down Expand Up @@ -141,5 +141,5 @@ async def test_retrieve_user_handler_resolves_an_actor_without_reading_the_datab
foreign key. Nothing can reach that state today; a delete-user path would have to solve it
alongside logout not revoking the JWT.
"""
token = Token(sub="42", exp=datetime.datetime.now(tz=datetime.UTC) + datetime.timedelta(minutes=5))
token = Token(sub="42", exp=dt.datetime.now(tz=dt.UTC) + dt.timedelta(minutes=5))
assert await retrieve_user_handler(token, None) == Actor(id=42) # ty: ignore[invalid-argument-type]
Loading