Не проставлятся Name при создании Ledger #614

Closed
opened 2026-03-03 17:04:15 +00:00 by protuberanets · 0 comments
Collaborator

Там при создании леджера Name не хочет фиксироваться, я думал, что у меня проблема, но потом с гпт покопался и как будто, все глубже:
По шагам:

В диалоге вводим name в TextField.
2. Фронт собирает describable.name = и отправляет POST /api/v1/ledger_accounts/{organizationRef}.
3. BFF принимает payload и передает describable дальше в CreateAccountRequest (то есть до бэка имя доходит).
4. Но запрос идет с role = operating (фронт так и шлет по умолчанию).
5. Для operating в ledger это “топологическая роль”, и сервер идет не в обычное “создать с полями запроса”, а в ветку ensure topology.
6. В этой ветке сервер делает GetByRole(currency+role):
если аккаунт уже есть, просто возвращает его;
если нет, создает “системный” аккаунт по шаблону.
7. В этом шаблоне describable.name из запроса не используется (создается аккаунт с accountCode, metadata.system=true и т.д.).
8. Потом при отдаче ответа, если describable.name пустой, connector ставит fallback: name = accountCode.
9. Поэтому в ответе name: "asset:rub:...", а не текст из диалога.

Там при создании леджера Name не хочет фиксироваться, я думал, что у меня проблема, но потом с гпт покопался и как будто, все глубже: По шагам: В диалоге вводим name в TextField. 2. Фронт собирает describable.name = <text> и отправляет POST /api/v1/ledger_accounts/{organizationRef}. 3. BFF принимает payload и передает describable дальше в CreateAccountRequest (то есть до бэка имя доходит). 4. Но запрос идет с role = operating (фронт так и шлет по умолчанию). 5. Для operating в ledger это “топологическая роль”, и сервер идет не в обычное “создать с полями запроса”, а в ветку ensure topology. 6. В этой ветке сервер делает GetByRole(currency+role): если аккаунт уже есть, просто возвращает его; если нет, создает “системный” аккаунт по шаблону. 7. В этом шаблоне describable.name из запроса не используется (создается аккаунт с accountCode, metadata.system=true и т.д.). 8. Потом при отдаче ответа, если describable.name пустой, connector ставит fallback: name = accountCode. 9. Поэтому в ответе name: "asset:rub:...", а не текст из диалога.
protuberanets added the bugbackend labels 2026-03-03 17:04:15 +00:00
tech was assigned by protuberanets 2026-03-03 17:04:15 +00:00
tech added reference ledger-614 2026-03-04 17:52:13 +00:00
tech closed this issue 2026-03-05 16:12:38 +00:00
Sign in to join this conversation.