@@ -26,32 +26,40 @@ protocol FactsStorageType {
2626}
2727
2828final class FactsStorage : FactsStorageType {
29- private let realm : Realm !
29+ private let realm : Realm ?
3030
3131 init ( realm: Realm ? = nil ) {
3232 self . realm = realm ?? ( try ? Realm ( ) )
3333 }
3434
3535 func storeCategories( _ categories: [ FactCategory ] ) {
36+ guard let realm = realm else { return }
37+
3638 try ? realm. write {
3739 let entities = categories. map ( FactCategoryEntity . init)
38- self . realm. add ( entities, update: . modified)
40+ realm. add ( entities, update: . modified)
3941 }
4042 }
4143
4244 func retrieveCategories( ) -> Observable < [ FactCategory ] > {
45+ guard let realm = realm else { return . never( ) }
46+
4347 let entities = realm. objects ( FactCategoryEntity . self)
4448 return Observable . collection ( from: entities) . map { $0. map { $0. item } }
4549 }
4650
4751 func storeSearch( searchTerm: String ) {
52+ guard let realm = realm else { return }
53+
4854 try ? realm. write {
4955 let entity = SearchEntity ( searchTerm: searchTerm)
50- self . realm. add ( entity, update: . modified)
56+ realm. add ( entity, update: . modified)
5157 }
5258 }
5359
5460 func retrieveSearches( ) -> Observable < [ String ] > {
61+ guard let realm = realm else { return . never( ) }
62+
5563 let entities = realm. objects ( SearchEntity . self) . sorted ( byKeyPath: " updatedAt " , ascending: false )
5664 return Observable . collection ( from: entities) . map { $0. map { $0. searchTerm } }
5765 }
0 commit comments