refetchUtil не работает так, как надо #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
По идее эта утилита должна сделать запрос, перелогиниться и сделать запрос заново. Но из-за того, что во время перелогина меняются токен, csrf и тд, данные внутри body запроса становятся не валидными. Нужно как то заставлять метод выше заново собрать тело запроса и повторить запрос.
Возможный путь решения №1:
Автоматически детектировать все поменявшиеся токены внутри старого запроса и в контексте refetchUtil подменять на новые
Возможный путь решения №2:
Также можно выкинуть ошибку типа RELOGGED_IN_RETRY, которая означает, что методу наверху нужно просто повторить вызов этого же запроса. Например так:
Было:
Стало:
Вопрос в том, как сделать это красиво без дублирования параметров и в идеале без дублирования имен методов, а также как это все привязать к крупным блокам кода, выполняющим одну функцию, например
Возможно имеет смысл перенести генерацию тела с зависимыми от сессии данными внутрь runJSONOperation() и там уже в повторном вызове метод сам добавит все необходимое из свойства
this.credentials