Closed krasnodar95 closed 6 years ago
Нет, это не логика кор слоя.
@krasnodar95, можно, но у тебя немного не тот случай. А если завтра появится кейс, что при 401 надо обновить токен и отправить запросы, которые не прошли, заново? Лучше создать какой-то промежуточный объект, который будет заниматься такой логикой. Еще для подобных случаев можно использовать COOperation
@suriksarkisyan Спасибо за быстрый ответ) Я понимаю что между NetworkManager'ом и AuthorizationService'ом неплохо было бы запихнуть такой объект. Но в целом будет верно если я вызову метод unathorize из этого промежуточного объекта?
@ignatovv А в какой слой нужно вынести?
Добавь NetworkClient в кор слой, NetworkManager сделай обёрткой над ней. И в этом случае вызывай спокойно unathorize метод сервиса авторизации в NetworkManager.
@mejl NetworkManager в данном случае будет являться частью слоя сервисов? И вопрос вдогонку, можно ли делать связи между сервисами напрямую?
@krasnodar95 нет https://www.youtube.com/watch?v=Eman1j06YsU
@krasnodar95 Сделай фасад над NetworkManager, и в случае возврата 401 статуса, вызывай из этого фасада unathorize у AuthorizationService. Ну или если ты не хочешь обращаться из кор слоя в сервис авторизации(пускай даже через фасад), то лучше дописать в каждом сервисе, который использует NetworkManager, обработку 401 ошибки, через замыкание anauthorizedHandler или метод didReceiveAnauthorized у делегата. И соотвественно сделать фасад над каждым таким сервисом, который в ответ на замыкание anauthorizedHandler или на вызов didReceiveAnauthorized, вызывал unathorize у AuthorizationService.
У меня есть AuthorizationService. Мне нужно вызвать у него unathorize когда от сервера на любой мой запрос придет статус 401. За запросы у меня отвечает NetworkManager(он находится в core layer). Будет ли верно если я вызову метод unathorize прямо из NetworkManager?