Skip to content

Commit

Permalink
Paywalls: add PaywallData.revision
Browse files Browse the repository at this point in the history
This will be used to send it along with the upcoming `PaywallEvent`s.
  • Loading branch information
NachoSoto committed Sep 7, 2023
1 parent 8658338 commit 8f2d279
Show file tree
Hide file tree
Showing 13 changed files with 29 additions and 8 deletions.
4 changes: 3 additions & 1 deletion RevenueCatUI/Helpers/PaywallData+Default.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,15 @@ extension PaywallData {
displayRestorePurchases: true
),
localization: Self.localization,
assetBaseURL: Self.defaultTemplateBaseURL
assetBaseURL: Self.defaultTemplateBaseURL,
revision: Self.revisionID
)
}

static let defaultTemplate: PaywallTemplate = .template2

static let appIconPlaceholder = "revenuecatui_default_paywall_app_icon"
static let revisionID: Int = -1

}

Expand Down
14 changes: 11 additions & 3 deletions Sources/Paywalls/PaywallData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ public struct PaywallData {
/// The base remote URL where assets for this paywall are stored.
public var assetBaseURL: URL

/// The revision identifier for this paywall.
public var revision: Int

@EnsureNonEmptyCollectionDecodable
internal private(set) var localization: [String: LocalizedConfiguration]

Expand Down Expand Up @@ -336,28 +339,32 @@ extension PaywallData {
templateName: String,
config: Configuration,
localization: [String: LocalizedConfiguration],
assetBaseURL: URL
assetBaseURL: URL,
revision: Int = 0
) {
self.templateName = templateName
self.config = config
self.localization = localization
self.assetBaseURL = assetBaseURL
self.revision = revision
}

/// Creates a test ``PaywallData`` with one localization
public init(
templateName: String,
config: Configuration,
localization: LocalizedConfiguration,
assetBaseURL: URL
assetBaseURL: URL,
revision: Int = 0
) {
let locale = Locale.current.identifier

self.init(
templateName: templateName,
config: config,
localization: [locale: localization],
assetBaseURL: assetBaseURL
assetBaseURL: assetBaseURL,
revision: revision
)
}

Expand Down Expand Up @@ -417,6 +424,7 @@ extension PaywallData: Codable {
case config
case localization = "localizedStrings"
case assetBaseURL = "assetBaseUrl"
case revision
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"title" : "{{ app_name }}"
}
},
"revision" : -1,
"template_name" : "2"
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"title" : "{{ app_name }}"
}
},
"revision" : -1,
"template_name" : "2"
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"title" : "{{ app_name }}"
}
},
"revision" : -1,
"template_name" : "2"
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"title" : "{{ app_name }}"
}
},
"revision" : -1,
"template_name" : "2"
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@
"title" : "{{ app_name }}"
}
},
"revision" : -1,
"template_name" : "2"
}
3 changes: 2 additions & 1 deletion Tests/UnitTests/Networking/Responses/Fixtures/Offerings.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@
"dark": null
}
},
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com"
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com",
"revision": 5
}
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,6 @@
}
}
},
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com"
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com",
"revision": 7
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@
"dark": null
}
},
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com"
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com",
"revision": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
"dark": null
}
},
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com"
"asset_base_url": "https://rc-paywalls.s3.amazonaws.com",
"revision": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ class OfferingsDecodingTests: BaseHTTPResponseTest {
let paywall = try XCTUnwrap(offering.paywall)
expect(paywall.templateName) == "1"
try expect(paywall.assetBaseURL) == XCTUnwrap(URL(string: "https://rc-paywalls.s3.amazonaws.com"))
expect(paywall.revision) == 5

expect(paywall.config.packages) == ["$rc_monthly", "$rc_annual", "custom_package"]
expect(paywall.config.defaultPackage).to(beNil())
Expand Down
1 change: 1 addition & 0 deletions Tests/UnitTests/Paywalls/PaywallDataTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class PaywallDataTests: BaseHTTPResponseTest {

expect(paywall.templateName) == "1"
expect(paywall.assetBaseURL) == URL(string: "https://rc-paywalls.s3.amazonaws.com")!
expect(paywall.revision) == 7
expect(paywall.config.packages) == ["$rc_monthly", "$rc_annual", "custom_package"]
expect(paywall.config.defaultPackage) == "$rc_annual"
expect(paywall.config.images) == .init(
Expand Down

0 comments on commit 8f2d279

Please sign in to comment.