Как вариант можно рассмотреть добавление запросов в репозиторий и заменить пробрасывание предиката на API посвежее - Query + сопутствующие изменения в StorageService в виде возвращаемого типа метода fetch
То есть в методе будет что-то вроде такого let cache = storage.fetch(by: AirportObject.self).where { $0.id == "" }
Резонно, и тогда мы возвращаемся к поиску по предикату и пробрасыванию его сквозь репозиторий и сервис. А почему это избыточно? Может быть у Вас есть идеи для более оптимальной реализации?
Привет, спасибо за мнение! А почему подобные запросы должны быть именно в репозитория? Я понимаю, что можно сразу ограничить объем рекордов полученных из БД, реализовав запросы в репозитории, что сразу позволяет получить их из разных модулей приложения, но в целом, на мой взгляд, такие запросы можно инкапсулировать в условную ViewModel в контексте MVVM, ViewModel получает сырые данные из репозитория, а затем подготавливает в нужный вид для UI слоя, отбирая их по нужному предикату, так и ограничивается кол-во модулей, которые будут перформить запросы.
Как вариант можно рассмотреть добавление запросов в репозиторий и заменить пробрасывание предиката на API посвежее - Query + сопутствующие изменения в StorageService в виде возвращаемого типа метода fetch
То есть в методе будет что-то вроде такого
let cache = storage.fetch(by: AirportObject.self).where { $0.id == "" }Резонно, и тогда мы возвращаемся к поиску по предикату и пробрасыванию его сквозь репозиторий и сервис. А почему это избыточно? Может быть у Вас есть идеи для более оптимальной реализации?
Привет, спасибо за мнение!
А почему подобные запросы должны быть именно в репозитория?
Я понимаю, что можно сразу ограничить объем рекордов полученных из БД, реализовав запросы в репозитории, что сразу позволяет получить их из разных модулей приложения, но в целом, на мой взгляд, такие запросы можно инкапсулировать в условную ViewModel в контексте MVVM, ViewModel получает сырые данные из репозитория, а затем подготавливает в нужный вид для UI слоя, отбирая их по нужному предикату, так и ограничивается кол-во модулей, которые будут перформить запросы.