быть вызван как метод апи, так и метод кэша
При этом в кэше может не быть данного юзера
Какой возвращаемый тип следует сделать у метода в кэше?
Способ 1: Сделать в кэше так же, как в репозитории getUser(id: string): Either<Exception, User>. В таком случае, если юзера нет в кэше, нужно возвращать Either.Left с кастомным эксепшеном, что мне кажется некорректным, потому что отсутствие данных - это не ошибка
Способ 2: сделать в кэше возвращаемый тип Either<Exception, Option<User>>. В этом случае придется дополнительно проверять, чем является Option и тащить его далее по слоям
Поделитесь опытом, кто как решает проблему отсутствия данных локально?
Если данных нет локально стоит сходить в сеть за ними, нет?
Локальный источник данных возвращает Either. Какой признак того, что данных нет?
Either<Exception, User?> в кэше. В репозитории уже исходя из логики flatMap'ить.
Обсуждают сегодня