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 .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ jobs:
docker run -d -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust --name db-test postgres:15-alpine
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
python -m ensurepip
python -m pip install --upgrade pip
pip install -r requirements.txt -r requirements.dev.txt
pip install --upgrade -r requirements.txt -r requirements.dev.txt
- name: Migrate DB
run: |
DB_DSN=postgresql://postgres@localhost:5432/postgres alembic upgrade head
Expand Down
2 changes: 1 addition & 1 deletion migrations/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def run_migrations_online():

"""
configuration = config.get_section(config.config_ini_section)
configuration['sqlalchemy.url'] = settings.DB_DSN
configuration['sqlalchemy.url'] = str(settings.DB_DSN)
connectable = engine_from_config(
configuration,
prefix="sqlalchemy.",
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ SQLAlchemy
gunicorn
logging-profcomff
auth-lib-profcomff[fastapi]
pydantic_settings
2 changes: 1 addition & 1 deletion services_backend/__main__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import uvicorn

from .routes.base import app
from services_backend.routes.base import app


if __name__ == '__main__':
Expand Down
2 changes: 1 addition & 1 deletion services_backend/routes/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

app.add_middleware(
DBSessionMiddleware,
db_url=settings.DB_DSN,
db_url=str(settings.DB_DSN),
engine_args={"pool_pre_ping": True, "isolation_level": "AUTOCOMMIT"},
)

Expand Down
16 changes: 9 additions & 7 deletions services_backend/routes/button.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ class ButtonCreate(Base):


class ButtonUpdate(Base):
category_id: int | None = Field(description='Айди категории')
icon: str | None = Field(description='Иконка кнопки')
name: str | None = Field(description='Название кнопки')
order: int | None = Field(description='Порядок, в котором отображаются кнопки')
link: str | None = Field(description='Ссылка, на которую перенаправляет кнопка')
type: Type | None = Field(description='Тип открываемой ссылки (Ссылка приложения/Браузер в приложении/Браузер')
category_id: int | None = Field(description='Айди категории', default=None)
icon: str | None = Field(description='Иконка кнопки', default=None)
name: str | None = Field(description='Название кнопки', default=None)
order: int | None = Field(description='Порядок, в котором отображаются кнопки', default=None)
link: str | None = Field(description='Ссылка, на которую перенаправляет кнопка', default=None)
type: Type | None = Field(
description='Тип открываемой ссылки (Ссылка приложения/Браузер в приложении/Браузер', default=None
)


class ButtonGet(Base):
Expand All @@ -41,7 +43,7 @@ class ButtonGet(Base):


class ButtonsGet(Base):
buttons: list[ButtonGet] | None
buttons: list[ButtonGet] | None = None


# endregion
Expand Down
18 changes: 9 additions & 9 deletions services_backend/routes/category.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,23 @@ class ButtonGet(Base):
class CategoryCreate(Base):
type: str = Field(description='Тип отображения категории')
name: str = Field(description='Имя категории')
scopes: set[str] | None = Field(description='Каким пользователям будет видна категория')
scopes: set[str] | None = Field(description='Каким пользователям будет видна категория', default=None)


class CategoryUpdate(Base):
order: int | None = Field(description='На какую позицию перенести категорию')
type: str | None = Field(description='Тип отображения категории')
name: str | None = Field(description='Имя категории')
scopes: set[str] | None = Field(description='Каким пользователям будет видна категория')
order: int | None = Field(description='На какую позицию перенести категорию', default=None)
type: str | None = Field(description='Тип отображения категории', default=None)
name: str | None = Field(description='Имя категории', default=None)
scopes: set[str] | None = Field(description='Каким пользователям будет видна категория', default=None)


class CategoryGet(Base):
id: int
order: int
type: str | None
name: str | None
buttons: list[ButtonGet] | None
scopes: list[str] | None
type: str | None = None
name: str | None = None
buttons: list[ButtonGet] | None = None
scopes: list[str] | None = None


# endregion
Expand Down
5 changes: 2 additions & 3 deletions services_backend/schemas.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from pydantic import BaseModel
from pydantic import BaseModel, ConfigDict


class Base(BaseModel):
Expand All @@ -8,5 +8,4 @@ def __repr__(self) -> str:
attrs.append(f"{k}={v}")
return "{}({})".format(self.__class__.__name__, ', '.join(attrs))

class Config:
orm_mode = True
model_config = ConfigDict(from_attributes=True, extra="ignore")
10 changes: 3 additions & 7 deletions services_backend/settings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import os
from functools import lru_cache

from pydantic import BaseSettings, PostgresDsn
from pydantic import ConfigDict, PostgresDsn
from pydantic_settings import BaseSettings


class Settings(BaseSettings):
Expand All @@ -14,12 +15,7 @@ class Settings(BaseSettings):
CORS_ALLOW_CREDENTIALS: bool = True
CORS_ALLOW_METHODS: list[str] = ['*']
CORS_ALLOW_HEADERS: list[str] = ['*']

class Config:
"""Pydantic BaseSettings config"""

case_sensitive = True
env_file = ".env"
model_config = ConfigDict(case_sensitive=True, env_file=".env", extra="ignore")


@lru_cache
Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def client(mocker: MockerFixture):
@pytest.fixture(scope='session')
def dbsession() -> Session:
settings = get_settings()
engine = create_engine(settings.DB_DSN, execution_options={"isolation_level": "AUTOCOMMIT"})
engine = create_engine(str(settings.DB_DSN), execution_options={"isolation_level": "AUTOCOMMIT"})
TestingSessionLocal = sessionmaker(bind=engine)
Base.metadata.drop_all(bind=engine)
Base.metadata.create_all(bind=engine)
Expand Down