приложение стучиться на сервер, полученные данные показыват пользователю, если данные есть в базе, то показывает из базы.
Возник вопрос - по хорошему - UseCase не должен заниматься тем, что сохранять полученные данные из сервера в бд, или это задача Gateway?
И основной вопрос, который хотелось бы реализовать красиво - как можно завернуть такую схему - если данные есть в бд, то отображаем данные пользователю и делаем запрос на сервер, даные приходят, сохраняем их бд и отображаем их пользователю. Мне нужно это реализовывать в UseCase? К примеру, ждать окончания получения данных из бд, и после этого запускать другой UseCase, который уже дергает даннные по сети, сохранят и отображает?
За все не скажу, но думаю, что чтобы все это не гонять по слоям, должно быть в рамках интерактора и репозитория
Если нет запроса, чтобы в UI показывать источник данных (а обычно его нет), то кеширование лучше репозиторию отдавать, нас вообще не интересует, где и как он данные берет
Спасибо за ответ. Но у меня как раз и задача - сперва показать то, что есть в бд, затем получить данные по сети, сохранить их и обновить в ui. Т е придется в usecase выполнить запрос к бд (метод в репозитори, который только получает данные из бд), отобразить данные, и по завершению этой операции запустить другой метод репозитория (метод, который делает запрос к по сети, сохраняет и возвращает результат в usecase, а тот уже обновляет в ui) Правильно?
Я бы все равно это делал в репе. Вытащи из бд то, что уже есть, обнови бд и верни выращенное раньше. Пойдет?
Обсуждают сегодня