Есть стандартный сценарий, при 401 ошибке нужно выкинуть на экран авторизации. Приложение построенно на много активити-много фрагментов.
Как это все должно выглядеть? Интерактор отвечает за бизнес логику и поидее должен быть какой-то базовый интерактор, который чекает все ошибки от бэка и как придет 401 ошибка, то сказать призентеру, что все хана сворачивай тапки, а презентер уже передает роутеру команду, что нужно показать экран авторизации.
Все верно? Есть у кого-нибудь тестовый проект с данной имплементацией? Ну или на пальцах объясните, пожалуйста.
а поле авторизации продолжить екшены/запросы? и вернуть на тот скрин?
У нас к примеру на одном проекте сделали максимально просто. Мы отлавливали ошибку 401 в CallAdapterFactory ретрофита, пытались восстановить сессию, если получалось, повторяли запрос, причем для подписчика все выглядело так что запрос проходил без ошибки. Если восстановить сессию не получалось то дергали метод GlobalNavigator'a чтобы он открыл экран авторизации. Это конечно серьезное нарушение архитектуры, но как уже обсуждалось, архитектура должна помогать, а не вставлять палки в колеса, так что подобное, в порядке исключения, приемлемо. Естественно что такие вещи лучше заносить в ТехДокументацию проекта.
Обсуждают сегодня