Skip to content

Commit fbf9a38

Browse files
committed
Better refactor for varied platform availability
1 parent 27219bb commit fbf9a38

File tree

1 file changed

+54
-48
lines changed

1 file changed

+54
-48
lines changed

FirebaseAuth/Sources/Swift/Utilities/AuthRecaptchaVerifier.swift

Lines changed: 54 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,69 +12,75 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
// RecaptchaInterop is only available on iOS.
16-
#if os(iOS)
17-
import Foundation
15+
import Foundation
1816

19-
#if SWIFT_PACKAGE
20-
import FirebaseAuthInternal
21-
#endif
17+
#if SWIFT_PACKAGE
18+
import FirebaseAuthInternal
19+
#endif
2220

21+
#if os(iOS)
2322
import RecaptchaInterop
23+
#endif // os(iOS)
2424

25-
@available(iOS 13, *)
26-
class AuthRecaptchaConfig {
27-
var siteKey: String?
28-
let enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]
25+
@available(iOS 13, *)
26+
class AuthRecaptchaConfig {
27+
var siteKey: String?
28+
let enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]
2929

30-
init(siteKey: String? = nil,
31-
enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]) {
32-
self.siteKey = siteKey
33-
self.enablementStatus = enablementStatus
34-
}
30+
init(siteKey: String? = nil,
31+
enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]) {
32+
self.siteKey = siteKey
33+
self.enablementStatus = enablementStatus
3534
}
35+
}
3636

37-
@available(iOS 13, *)
38-
enum AuthRecaptchaEnablementStatus: String, CaseIterable {
39-
case enforce = "ENFORCE"
40-
case audit = "AUDIT"
41-
case off = "OFF"
37+
@available(iOS 13, *)
38+
enum AuthRecaptchaEnablementStatus: String, CaseIterable {
39+
case enforce = "ENFORCE"
40+
case audit = "AUDIT"
41+
case off = "OFF"
4242

43-
// Convenience property for mapping values
44-
var stringValue: String { rawValue }
45-
}
43+
// Convenience property for mapping values
44+
var stringValue: String { rawValue }
45+
}
4646

47-
@available(iOS 13, *)
48-
enum AuthRecaptchaProvider: String, CaseIterable {
49-
case password = "EMAIL_PASSWORD_PROVIDER"
50-
case phone = "PHONE_PROVIDER"
47+
@available(iOS 13, *)
48+
enum AuthRecaptchaProvider: String, CaseIterable {
49+
case password = "EMAIL_PASSWORD_PROVIDER"
50+
case phone = "PHONE_PROVIDER"
5151

52-
// Convenience property for mapping values
53-
var stringValue: String { rawValue }
54-
}
52+
// Convenience property for mapping values
53+
var stringValue: String { rawValue }
54+
}
5555

56-
@available(iOS 13, *)
57-
enum AuthRecaptchaAction: String {
58-
case defaultAction
59-
case signInWithPassword
60-
case getOobCode
61-
case signUpPassword
62-
case sendVerificationCode
63-
case mfaSmsSignIn
64-
case mfaSmsEnrollment
56+
@available(iOS 13, *)
57+
enum AuthRecaptchaAction: String {
58+
case defaultAction
59+
case signInWithPassword
60+
case getOobCode
61+
case signUpPassword
62+
case sendVerificationCode
63+
case mfaSmsSignIn
64+
case mfaSmsEnrollment
6565

66-
// Convenience property for mapping values
67-
var stringValue: String { rawValue }
68-
}
66+
// Convenience property for mapping values
67+
var stringValue: String { rawValue }
68+
}
6969

70-
@available(iOS 13, *)
71-
class AuthRecaptchaVerifier {
72-
weak var auth: Auth?
73-
private var agentConfig: AuthRecaptchaConfig?
74-
private var tenantConfigs: [String: AuthRecaptchaConfig] = [:]
70+
@available(iOS 13, *)
71+
class AuthRecaptchaVerifier {
72+
weak var auth: Auth?
73+
private var agentConfig: AuthRecaptchaConfig?
74+
private var tenantConfigs: [String: AuthRecaptchaConfig] = [:]
75+
#if os(iOS)
7576
private var recaptchaClient: RCARecaptchaClientProtocol?
76-
private let recaptchaVersion = "RECAPTCHA_ENTERPRISE"
77+
#endif // os(iOS)
78+
private let recaptchaVersion = "RECAPTCHA_ENTERPRISE"
79+
}
7780

81+
#if os(iOS)
82+
@available(iOS 13, *)
83+
extension AuthRecaptchaVerifier {
7884
private func siteKey() -> String? {
7985
if let tenantID = auth?.tenantID {
8086
if let config = tenantConfigs[tenantID] {

0 commit comments

Comments
 (0)