Fixes error fetching Friend Zone patrons due to unexpected nil name

This commit is contained in:
Riley Testut
2023-03-28 14:37:47 -05:00
parent 6b42e82e3e
commit adaf7a2560
3 changed files with 8 additions and 5 deletions

View File

@@ -70,7 +70,7 @@ class UpdatePatronsOperation: ResultOperation<Void>
do
{
let patrons = try result.get()
let managedPatrons = patrons.map { ManagedPatron(patron: $0, context: self.context) }
let managedPatrons = patrons.compactMap { ManagedPatron(patron: $0, context: self.context) }
let patronIDs = Set(managedPatrons.map { $0.identifier })
let nonFriendZonePredicate = NSPredicate(format: "NOT (%K IN %@)", #keyPath(ManagedPatron.identifier), patronIDs)

View File

@@ -19,11 +19,14 @@ public class ManagedPatron: NSManagedObject, Fetchable
super.init(entity: entity, insertInto: context)
}
public init(patron: Patron, context: NSManagedObjectContext)
public init?(patron: Patron, context: NSManagedObjectContext)
{
// Only cache Patrons with non-nil names.
guard let name = patron.name else { return nil }
super.init(entity: ManagedPatron.entity(), insertInto: context)
self.name = patron.name
self.name = name
self.identifier = patron.identifier
}
}

View File

@@ -14,7 +14,7 @@ extension PatreonAPI
{
struct Attributes: Decodable
{
var full_name: String
var full_name: String?
var patron_status: String?
}
@@ -54,7 +54,7 @@ extension Patron
public class Patron
{
public var name: String
public var name: String?
public var identifier: String
public var status: Status