Skip to content

Param alias - #56

Open
DaymasS wants to merge 6 commits into
mainfrom
param-alias
Open

Param alias#56
DaymasS wants to merge 6 commits into
mainfrom
param-alias

Conversation

@DaymasS

@DaymasS DaymasS commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Изменения

Добавление алиасов для юзердаты.

Детали реализации

TODO.

Check-List

  • Вы проверили свой код перед отправкой запроса?
  • Вы написали тесты к реализованным функциям?
  • Вы не забыли применить форматирование black и isort для Back-End или Prettier для Front-End?
@DaymasS
DaymasS requested a review from petrCher June 25, 2026 17:43
@DaymasS DaymasS self-assigned this Jun 25, 2026
@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

Code Coverage

Coverage Report
FileStmtsMissCoverMissing
userdata_api
   __main__.py17170%1–26
userdata_api/models
   base.py65592%25–28, 76
   db.py73199%97
userdata_api/routes
   admin.py14379%24, 41–42
   category.py41490%37, 70–72
   param.py53885%38, 58, 97–100, 105, 128
   param_alias.py65592%21, 37, 46, 82–83
   source.py30197%34
userdata_api/schemas
   base.py8450%6–9
   user.py24771%22–28
userdata_api/schemas/types
   scope.py24675%30–32, 37, 40, 42
userdata_api/utils
   admin.py261735%26–35, 52–98
   param_alias.py14193%49
   user.py86397%42, 84, 88
TOTAL7058288% 

Summary

Tests Skipped Failures Errors Time
69 0 💤 0 ❌ 0 🔥 5.897s ⏱️
@DaymasS

DaymasS commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Убрать Category_id из поиска/инициализации алиаса

@petrCher

Copy link
Copy Markdown
Member

https://github.com/profcomff/dwh-pipelines/blob/main/dags/ods/user/user_to_back.py#L179
например здесь хочется только название параметра(алиаса) писать, без категории

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

1 similar comment
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@petrCher petrCher linked an issue Jul 13, 2026 that may be closed by this pull request
@petrCher

Copy link
Copy Markdown
Member

@DaymasS сделай ребейз (исправил линтинг)

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

param_alias = APIRouter(prefix="/param/{param_id}/alias", tags=["Param Alias"])


def _get_param(*, param_id: int) -> Param:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а зачем такую функцию делать если есть кастомный метод Param.get который вернет 404? я бы даже без функции просто в коде бы прописал в самой ручке

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

но если хочешь оставить функцию по каким-то причинам, то я не уверен, что надо что-то возвращать, ты же потом не используешь полученные данные

def _validate_source(source_id: int | None) -> None:
if source_id is None:
return
source = Source.query(session=db.session).filter(Source.id == source_id).one_or_none()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

здесь тоже можно было бы заменить на Source.get


@param_alias.post("", response_model=ParamAliasGet)
async def create_param_alias(
request: Request,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не используется

request: Request,
param_id: int,
alias_inp: ParamAliasPost,
_: dict[str, Any] = Depends(UnionAuth(scopes=["userdata.param.create"], allow_none=False, auto_error=True)),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

есть идея скоупы сделать для алиасов конкретно
по типу userdata.alias.create
просто я бы наверное мог выдавать доступ команде именно к этим доступам, чтобы сами параметры не могли поменять, но могли работать с алиасами


@param_alias.delete("/{alias_id}", response_model=StatusResponseModel)
async def delete_param_alias(
request: Request,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тоже не используется

@petrCher

Copy link
Copy Markdown
Member

запусти сейчас make format, у меня локально для текущего кода проблемы, на которые ругается линтинг исчезают

Comment thread userdata_api/models/db.py
Может быть привязан к конкретному источнику или быть общим для всех источников.
"""

name: Mapped[str] = mapped_column(String, unique=True)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unique=True заблочит создание алиаса с названием удаленного (у нас же софт делиты)



class ParamAliasPatch(Base):
name: constr(min_length=1) | None = None

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

здесь возможно none передать, поэтому в userdata_api/routes/param_alias.py в строке patch_data = alias_inp.model_dump(exclude_unset=True) будет передано поле с none
дальше _check_alias_name_exists не вылетит, и код дойдет до alias = ParamAlias.update
но name не может быть none

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants