4.5 KiB
MODIFIED Requirements
Requirement: Создание и замена подключения T-Bank
Система SHALL позволять авторизованному User создать или заменить единственное подключение через PUT /api/v1/tbank-connection с token. Система MUST удалить внешние пробелы token, отклонить пустое значение как ошибку валидации и проверить token запросом T-Bank открытых счетов до сохранения. Пустой список счетов MUST считаться успешной проверкой. Успех MUST вернуть 200 с текущим статусом подключения; успешная замена MUST установить новый connectedAt. После успешного подключения MUST начинаться первая фоновая загрузка доступных личных данных без команды frontend. История стоимости прежних счетов MUST сохраняться, но показываться только для счетов, доступ к которым подтверждён новым подключением.
Scenario: Успешное создание подключения без счетов
- WHEN User отправляет непустой token и T-Bank успешно возвращает пустой список открытых счетов
- THEN система сохраняет подключение и отвечает
200с{ connected: true, connectedAt: <RFC 3339 UTC timestamp> }; первая загрузка не создаёт фиктивные счета
Scenario: Успешная замена подключения
- WHEN User с подключением отправляет другой token и T-Bank успешно его проверяет
- THEN система заменяет token подключения, обновляет
connectedAt, отвечает текущим статусом без token и начинает обновление подтверждённых счетов, не теряя их прежние исторические точки
Scenario: Невалидный token не заменяет существующее подключение
- WHEN T-Bank отклоняет token как неаутентифицированный или не имеющий прав
- THEN система отвечает
400Problem Details с codeINVALID_TBANK_TOKENи сохраняет прежнее подключение без изменений
Scenario: T-Bank временно недоступен при проверке token
- WHEN проверка token не завершается из-за временной или иной upstream-ошибки
- THEN система отвечает
503Problem Details с codeTBANK_UNAVAILABLEи не создаёт либо не изменяет подключение
Requirement: Удаление подключения T-Bank
Система SHALL позволять авторизованному User удалить своё подключение через DELETE /api/v1/tbank-connection. Удаление MUST быть идемпотентным и отвечать 204; после успешного удаления backend MUST прекратить использовать удалённый token и удалить относящиеся к User кэшированные текущие данные T-Bank. История стоимости счёта MUST сохраняться с пометкой удаления и MUST NOT раскрываться до подтверждения нового доступа к тому же счёту.
Scenario: Удаление существующего подключения
- WHEN User удаляет существующее подключение
- THEN система удаляет token и связанные кэшированные текущие данные User, скрывает сохранённую историю стоимости и отвечает
204
Scenario: Повторное удаление подключения
- WHEN User удаляет уже отсутствующее подключение
- THEN система отвечает
204, не раскрывая сохранённую историю