mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Verifies StoreApp.isPledged status when updating source
This commit is contained in:
@@ -224,7 +224,7 @@ public extension DatabaseManager
|
||||
|
||||
let predicate = NSPredicate(format: "%K == %@", #keyPath(PatreonAccount.identifier), patreonAccountID)
|
||||
|
||||
let patreonAccount = PatreonAccount.first(satisfying: predicate, in: context)
|
||||
let patreonAccount = PatreonAccount.first(satisfying: predicate, in: context, requestProperties: [\.relationshipKeyPathsForPrefetching: [#keyPath(PatreonAccount._pledges)]])
|
||||
return patreonAccount
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,6 +182,12 @@ public class StoreApp: NSManagedObject, Decodable, Fetchable
|
||||
|
||||
@NSManaged public private(set) var loggedErrors: NSSet /* Set<LoggedError> */ // Use NSSet to avoid eagerly fetching values.
|
||||
|
||||
/* Non-Core Data Properties */
|
||||
|
||||
// Used to set isPledged after fetching source.
|
||||
public var _tierIDs: Set<String>?
|
||||
public var _rewardID: String?
|
||||
|
||||
@nonobjc public var source: Source? {
|
||||
set {
|
||||
self._source = newValue
|
||||
@@ -420,6 +426,9 @@ public class StoreApp: NSManagedObject, Decodable, Fetchable
|
||||
// No conditions, so default to pledgeAmount of 0 to simplify logic.
|
||||
self._pledgeAmount = 0 as NSDecimalNumber
|
||||
}
|
||||
|
||||
self._tierIDs = patreon.tiers
|
||||
self._rewardID = patreon.benefit
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -427,6 +436,9 @@ public class StoreApp: NSManagedObject, Decodable, Fetchable
|
||||
self.isHiddenWithoutPledge = false
|
||||
self._pledgeAmount = nil
|
||||
self.pledgeCurrency = nil
|
||||
|
||||
self._tierIDs = nil
|
||||
self._rewardID = nil
|
||||
}
|
||||
}
|
||||
catch
|
||||
|
||||
Reference in New Issue
Block a user