debloat: remove patreon stuff carried over from altstore 2.0...not required by sidestore in-app since sidestore manages in web + remove old tests from altstore

This commit is contained in:
mahee96
2026-02-22 14:53:47 +05:30
parent c807154873
commit a6be43da53
32 changed files with 102 additions and 4553 deletions

View File

@@ -348,16 +348,6 @@ public extension DatabaseManager
let activeTeam = Team.first(satisfying: predicate, in: context)
return activeTeam
}
func patreonAccount(in context: NSManagedObjectContext = DatabaseManager.shared.viewContext) -> PatreonAccount?
{
guard let patreonAccountID = Keychain.shared.patreonAccountID else { return nil }
let predicate = NSPredicate(format: "%K == %@", #keyPath(PatreonAccount.identifier), patreonAccountID)
let patreonAccount = PatreonAccount.first(satisfying: predicate, in: context, requestProperties: [\.relationshipKeyPathsForPrefetching: [#keyPath(PatreonAccount._pledges)]])
return patreonAccount
}
}
private extension DatabaseManager

View File

@@ -306,35 +306,6 @@ extension MergePolicy{
conflictedObject.featuredSortID = featuredSortID
}
case let databasePledge as Pledge:
guard let contextPledge = conflict.conflictingObjects.first as? Pledge else { break }
// Tiers
let contextTierIDs = Set(contextPledge._tiers.lazy.compactMap { $0 as? PledgeTier }.map { $0.identifier })
for case let databaseTier as PledgeTier in databasePledge._tiers where !contextTierIDs.contains(databaseTier.identifier)
{
// Tier ID does NOT exist in context, so delete existing databaseTier.
databaseTier.managedObjectContext?.delete(databaseTier)
}
// Rewards
let contextRewardIDs = Set(contextPledge._rewards.lazy.compactMap { $0 as? PledgeReward }.map { $0.identifier })
for case let databaseReward as PledgeReward in databasePledge._rewards where !contextRewardIDs.contains(databaseReward.identifier)
{
// Reward ID does NOT exist in context, so delete existing databaseReward.
databaseReward.managedObjectContext?.delete(databaseReward)
}
case let databaseAccount as PatreonAccount:
guard let contextAccount = conflict.conflictingObjects.first as? PatreonAccount else { break }
let contextPledgeIDs = Set(contextAccount._pledges.lazy.compactMap { $0 as? Pledge }.map { $0.identifier })
for case let databasePledge as Pledge in databaseAccount._pledges where !contextPledgeIDs.contains(databasePledge.identifier)
{
// Pledge ID does NOT exist in context, so delete existing databasePledge.
databasePledge.managedObjectContext?.delete(databasePledge)
}
default: break
}
}

View File

@@ -1,40 +0,0 @@
//
// ManagedPatron.swift
// AltStoreCore
//
// Created by Riley Testut on 4/18/22.
// Copyright © 2022 Riley Testut. All rights reserved.
//
import CoreData
@objc(ManagedPatron)
public class ManagedPatron: BaseEntity
{
@NSManaged public var name: String
@NSManaged public var identifier: String
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
{
super.init(entity: entity, insertInto: context)
}
public init?(patron: PatreonAPI.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 = name
self.identifier = patron.identifier
}
}
public extension ManagedPatron
{
@nonobjc class func fetchRequest() -> NSFetchRequest<ManagedPatron>
{
return NSFetchRequest<ManagedPatron>(entityName: "Patron")
}
}

View File

@@ -1,60 +0,0 @@
//
// PatreonAccount.swift
// AltStore
//
// Created by Riley Testut on 8/20/19.
// Copyright © 2019 Riley Testut. All rights reserved.
//
import CoreData
@objc(PatreonAccount)
public class PatreonAccount: NSManagedObject, Fetchable
{
@NSManaged public var identifier: String
@NSManaged public var name: String
@NSManaged public var firstName: String?
// Use `isPatron` for backwards compatibility.
@NSManaged @objc(isPatron) public var isAltStorePatron: Bool
/* Relationships */
@nonobjc public var pledges: Set<Pledge> { _pledges as! Set<Pledge> }
@NSManaged @objc(pledges) internal var _pledges: NSSet
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
{
super.init(entity: entity, insertInto: context)
}
init(account: PatreonAPI.UserAccount, context: NSManagedObjectContext)
{
super.init(entity: PatreonAccount.entity(), insertInto: context)
self.identifier = account.identifier
self.name = account.name
self.firstName = account.firstName
// if let patronResponse = response.included?.first
// {
// let patron = Patron(response: patronResponse)
// self.isPatron = (patron.status == .active)
// }
// else
// {
// self.isPatron = false
// }
// self.isPatron = true
self.isAltStorePatron = true
}
}
public extension PatreonAccount
{
@nonobjc class func fetchRequest() -> NSFetchRequest<PatreonAccount>
{
return NSFetchRequest<PatreonAccount>(entityName: "PatreonAccount")
}
}

View File

@@ -1,54 +0,0 @@
//
// Pledge.swift
// AltStoreCore
//
// Created by Riley Testut on 10/24/23.
// Copyright © 2023 Riley Testut. All rights reserved.
//
import Foundation
import CoreData
@objc(Pledge)
public class Pledge: NSManagedObject, Fetchable
{
/* Properties */
@NSManaged public private(set) var identifier: String
@NSManaged public private(set) var campaignURL: URL
@nonobjc public var amount: Decimal { _amount as Decimal }
@NSManaged @objc(amount) private var _amount: NSDecimalNumber
/* Relationships */
@NSManaged public private(set) var account: PatreonAccount?
@nonobjc public var tiers: Set<PledgeTier> { _tiers as! Set<PledgeTier> }
@NSManaged @objc(tiers) internal var _tiers: NSSet
@nonobjc public var rewards: Set<PledgeReward> { _rewards as! Set<PledgeReward> }
@NSManaged @objc(rewards) internal var _rewards: NSSet
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
{
super.init(entity: entity, insertInto: context)
}
init?(patron: PatreonAPI.Patron, context: NSManagedObjectContext)
{
guard let amount = patron.pledgeAmount, let campaignURL = patron.campaign?.url else { return nil }
super.init(entity: Pledge.entity(), insertInto: context)
self.identifier = patron.identifier
self._amount = amount as NSDecimalNumber
self.campaignURL = campaignURL
}
}
public extension Pledge
{
@nonobjc class func fetchRequest() -> NSFetchRequest<Pledge>
{
return NSFetchRequest<Pledge>(entityName: "Pledge")
}
}

View File

@@ -1,42 +0,0 @@
//
// PledgeReward.swift
// AltStoreCore
//
// Created by Riley Testut on 10/24/23.
// Copyright © 2023 Riley Testut. All rights reserved.
//
import Foundation
import CoreData
@objc(PledgeReward)
public class PledgeReward: NSManagedObject, Fetchable
{
/* Properties */
@NSManaged public private(set) var name: String
@NSManaged public private(set) var identifier: String
/* Relationships */
@NSManaged public private(set) var pledge: Pledge?
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
{
super.init(entity: entity, insertInto: context)
}
init(benefit: PatreonAPI.Benefit, context: NSManagedObjectContext)
{
super.init(entity: PledgeReward.entity(), insertInto: context)
self.name = benefit.name
self.identifier = benefit.identifier.rawValue
}
}
public extension PledgeReward
{
@nonobjc class func fetchRequest() -> NSFetchRequest<PledgeReward>
{
return NSFetchRequest<PledgeReward>(entityName: "PledgeReward")
}
}

View File

@@ -1,46 +0,0 @@
//
// PledgeTier.swift
// AltStoreCore
//
// Created by Riley Testut on 10/24/23.
// Copyright © 2023 Riley Testut. All rights reserved.
//
import Foundation
import CoreData
@objc(PledgeTier)
public class PledgeTier: NSManagedObject, Fetchable
{
/* Properties */
@NSManaged public private(set) var name: String?
@NSManaged public private(set) var identifier: String
@nonobjc public var amount: Decimal { _amount as Decimal } // In USD
@NSManaged @objc(amount) private var _amount: NSDecimalNumber
/* Relationships */
@NSManaged public private(set) var pledge: Pledge?
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
{
super.init(entity: entity, insertInto: context)
}
init(tier: PatreonAPI.Tier, context: NSManagedObjectContext)
{
super.init(entity: PledgeTier.entity(), insertInto: context)
self.name = tier.name
self.identifier = tier.identifier
self._amount = tier.amount as NSDecimalNumber
}
}
public extension PledgeTier
{
@nonobjc class func fetchRequest() -> NSFetchRequest<PledgeTier>
{
return NSFetchRequest<PledgeTier>(entityName: "PledgeTier")
}
}