@@ -39,98 +39,95 @@ public class BraveSkusManager {
39
39
return
40
40
}
41
41
42
- manager. credentialSummary ( for: domain) { completion in
42
+ Task {
43
+ _ = await manager. credentialSummary ( for: domain)
43
44
Logger . module. debug ( " credentialSummary response " )
44
45
}
45
46
}
46
47
47
48
// MARK: - Handling SKU methods.
48
49
49
- func refreshOrder( for orderId: String , domain: String , resultJSON : @escaping ( Any ? ) -> Void ) {
50
- sku. refreshOrder ( domain, orderId: orderId) { completion in
51
- do {
52
- guard let data = completion . data ( using : . utf8 ) else { return }
53
- let json = try JSONSerialization . jsonObject ( with : data , options : . fragmentsAllowed )
54
- Logger . module . debug ( " refreshOrder json parsed successfully " )
55
- resultJSON ( json)
56
- } catch {
57
- resultJSON ( nil )
58
- Logger . module. error ( " refrshOrder: Failed to decode json: \( error. localizedDescription) " )
59
- }
50
+ func refreshOrder( for orderId: String , domain: String ) async -> Any ? {
51
+ let response = await sku. refreshOrder ( domain, orderId: orderId)
52
+
53
+ do {
54
+ guard let data = response . data ( using : . utf8 ) else { return nil }
55
+ let json = try JSONSerialization . jsonObject ( with : data , options : . fragmentsAllowed )
56
+ Logger . module . debug ( " refreshOrder json parsed successfully " )
57
+ return json
58
+ } catch {
59
+ Logger . module. error ( " refrshOrder: Failed to decode json: \( error. localizedDescription) " )
60
+ return nil
60
61
}
61
62
}
62
63
63
- func fetchOrderCredentials( for orderId: String , domain: String , resultCredential: @escaping ( String ) -> Void ) {
64
- sku. fetchOrderCredentials ( domain, orderId: orderId) { completion in
65
- Logger . module. debug ( " skus fetchOrderCredentials " )
66
- resultCredential ( completion)
67
- }
64
+ func fetchOrderCredentials( for orderId: String , domain: String ) async -> String {
65
+ let credential = await sku. fetchOrderCredentials ( domain, orderId: orderId)
66
+ Logger . module. debug ( " skus fetchOrderCredentials " )
67
+ return credential
68
68
}
69
69
70
- func prepareCredentialsPresentation( for domain: String , path: String ,
71
- resultCredential: ( ( String ) -> Void ) ? ) {
70
+ func prepareCredentialsPresentation( for domain: String , path: String ) async -> String {
72
71
Logger . module. debug ( " skus prepareCredentialsPresentation " )
73
- sku. prepareCredentialsPresentation ( domain, path: path) { credential in
74
- if !credential. isEmpty {
75
- if let vpnCredential = BraveSkusWebHelper . fetchVPNCredential ( credential, domain: domain) {
76
- Preferences . VPN. skusCredential. value = credential
77
- Preferences . VPN. skusCredentialDomain. value = domain
78
- Preferences . VPN. expirationDate. value = vpnCredential. expirationDate
79
-
80
- BraveVPN . setCustomVPNCredential ( vpnCredential)
81
- }
82
- } else {
83
- Logger . module. debug ( " skus empty credential from prepareCredentialsPresentation call " )
72
+
73
+ let credential = await sku. prepareCredentialsPresentation ( domain, path: path)
74
+
75
+ if !credential. isEmpty {
76
+ if let vpnCredential = BraveSkusWebHelper . fetchVPNCredential ( credential, domain: domain) {
77
+ Preferences . VPN. skusCredential. value = credential
78
+ Preferences . VPN. skusCredentialDomain. value = domain
79
+ Preferences . VPN. expirationDate. value = vpnCredential. expirationDate
80
+
81
+ BraveVPN . setCustomVPNCredential ( vpnCredential)
84
82
}
85
-
86
- resultCredential ? ( credential)
83
+ } else {
84
+ Logger . module . debug ( " skus empty credential from prepareCredentialsPresentation call " )
87
85
}
86
+
87
+ return credential
88
88
}
89
89
90
- func credentialSummary( for domain: String , resultJSON: @escaping ( Any ? ) -> Void ) {
91
- sku. credentialSummary ( domain) { [ self ] completion in
92
- do {
93
- Logger . module. debug ( " skus credentialSummary " )
94
-
95
- guard let data = completion. data ( using: . utf8) else {
96
- resultJSON ( nil )
97
- return
90
+ func credentialSummary( for domain: String ) async -> Any ? {
91
+ let credential = await sku. credentialSummary ( domain)
92
+
93
+ do {
94
+ Logger . module. debug ( " skus credentialSummary " )
95
+
96
+ guard let data = credential. data ( using: . utf8) else {
97
+ return nil
98
+ }
99
+
100
+ let json = try JSONSerialization . jsonObject ( with: data, options: . fragmentsAllowed)
101
+
102
+ let jsonDecoder = JSONDecoder ( )
103
+ jsonDecoder. keyDecodingStrategy = . convertFromSnakeCase
104
+ let credentialSummaryJson = try jsonDecoder. decode ( CredentialSummary . self, from: data)
105
+
106
+ switch credentialSummaryJson. state {
107
+ case . valid:
108
+ if Preferences . VPN. skusCredential. value == nil {
109
+ Logger . module. debug ( " The credential does NOT exists, calling prepareCredentialsPresentation " )
110
+ let _ = await prepareCredentialsPresentation ( for: domain, path: " * " )
111
+ } else {
112
+ Logger . module. debug ( " The credential exists, NOT calling prepareCredentialsPresentation " )
98
113
}
99
- let json = try JSONSerialization . jsonObject ( with: data, options: . fragmentsAllowed)
100
-
101
- let jsonDecoder = JSONDecoder ( )
102
- jsonDecoder. keyDecodingStrategy = . convertFromSnakeCase
103
- let credentialSummaryJson = try jsonDecoder. decode ( CredentialSummary . self, from: data)
104
-
105
- switch credentialSummaryJson. state {
106
- case . valid:
107
- if Preferences . VPN. skusCredential. value == nil {
108
- Logger . module. debug ( " The credential does NOT exists, calling prepareCredentialsPresentation " )
109
- self . prepareCredentialsPresentation ( for: domain, path: " * " ) { _ in
110
- // Keep the skus manager alive until preparing credential presentation finishes.
111
- _ = self
112
- }
113
- } else {
114
- Logger . module. debug ( " The credential exists, NOT calling prepareCredentialsPresentation " )
115
- }
116
- case . sessionExpired:
117
- Logger . module. debug ( " This credential session has expired " )
118
- Self . keepShowingSessionExpiredState = true
119
- case . invalid:
120
- if !credentialSummaryJson. active {
121
- Logger . module. debug ( " The credential summary is not active " )
122
- }
123
-
124
- if credentialSummaryJson. remainingCredentialCount <= 0 {
125
- Logger . module. debug ( " The credential summary does not have any remaining credentials " )
126
- }
114
+ case . sessionExpired:
115
+ Logger . module. debug ( " This credential session has expired " )
116
+ Self . keepShowingSessionExpiredState = true
117
+ case . invalid:
118
+ if !credentialSummaryJson. active {
119
+ Logger . module. debug ( " The credential summary is not active " )
127
120
}
128
121
129
- resultJSON ( json)
130
- } catch {
131
- resultJSON ( nil )
132
- Logger . module. error ( " refrshOrder: Failed to decode json: \( error. localizedDescription) " )
122
+ if credentialSummaryJson. remainingCredentialCount <= 0 {
123
+ Logger . module. debug ( " The credential summary does not have any remaining credentials " )
124
+ }
133
125
}
126
+
127
+ return json
128
+ } catch {
129
+ Logger . module. error ( " refrshOrder: Failed to decode json: \( error. localizedDescription) " )
130
+ return nil
134
131
}
135
132
}
136
133
0 commit comments