Skip to content

Commit

Permalink
IOS-2456 Remove redundant work with cache
Browse files Browse the repository at this point in the history
  • Loading branch information
ignatovv committed Apr 1, 2024
1 parent 2022371 commit 6767fb9
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ struct MembershipCoordinator: View {
subtitle: Loc.Error.Common.message,
actionText: Loc.Error.Common.tryAgain
) {
model.loadTiers(noCache: false)
model.loadTiers()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ final class MembershipCoordinatorModel: ObservableObject {

init() {
membershipStatusStorage.status.assign(to: &$userMembership)
loadTiers(noCache: false)
loadTiers()
}

func onTierSelected(tier: MembershipTier) {
Expand All @@ -47,7 +47,7 @@ final class MembershipCoordinatorModel: ObservableObject {
func onSuccessfulValidation(data: EmailVerificationData) {
emailVerificationData = nil
showTier = nil
loadTiers(noCache: true)
loadTiers()

// https://linear.app/anytype/issue/IOS-2434/bottom-sheet-nesting
Task {
Expand All @@ -56,10 +56,10 @@ final class MembershipCoordinatorModel: ObservableObject {
}
}

func loadTiers(noCache: Bool) {
func loadTiers() {
Task {
do {
tiers = try await membershipService.getTiers(noCache: noCache)
tiers = try await membershipService.getTiers()
showTiersLoadingError = false
} catch {
showTiersLoadingError = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ public protocol MembershipServiceProtocol {
func validateName(name: String, tierType: MembershipTierType) async throws
}

public extension MembershipServiceProtocol {
func getTiers() async throws -> [MembershipTier] {
try await getTiers(noCache: false)
}
}

final class MembershipService: MembershipServiceProtocol {

public func getStatus() async throws -> MembershipStatus {
Expand All @@ -32,19 +38,14 @@ final class MembershipService: MembershipServiceProtocol {
}

public func makeStatusFromMiddlewareModel(membership: MiddlewareMemberhsipStatus) async throws -> MembershipStatus {
let cachedTier = try await getTiers(noCache: false).first { $0.type.id == membership.tier }

if let tier = cachedTier {
return convertMiddlewareMembership(membership: membership, tier: tier)
}
let tier = try await getTiers().first { $0.type.id == membership.tier }

let middlewareTier = try await getTiers(noCache: true).first { $0.type.id == membership.tier }
if let tier = middlewareTier {
return convertMiddlewareMembership(membership: membership, tier: tier)
guard let tier = tier else {
anytypeAssertionFailure("Not found tier info for \(membership)")
throw MembershipServiceError.tierNotFound
}

anytypeAssertionFailure("Not found tier info for \(membership)")
throw MembershipServiceError.tierNotFound
return convertMiddlewareMembership(membership: membership, tier: tier)
}

public func getTiers(noCache: Bool) async throws -> [MembershipTier] {
Expand Down

0 comments on commit 6767fb9

Please sign in to comment.