@@ -9,46 +9,46 @@ import Foundation
99import PromiseKit
1010import Moya
1111
12- class FreeTestService {
13-
12+ final class FreeTestService {
13+
14+ // MARK: - Properties
15+
1416 private let localStorage : RealmLocalStorage ?
1517 private let deviceCheckService : DeviceCheckServiceProtocol
1618 private let apiProvider : MoyaProvider < FreeTestTarget >
1719 private let configuration : RemoteConfigProtocol
1820 private let renewableRequest : RenewableRequest < FreeTestTarget >
1921
2022 private var jsOnSubscriptionInfoClosure : ( ( FreeTestSubscriptionInfoResponse ) -> ( ) ) ?
21-
23+
24+ // MARK: - Initialization
25+
2226 init (
2327 with localStorage: RealmLocalStorage ? ,
2428 deviceCheckService: DeviceCheckServiceProtocol ,
2529 apiProvider: MoyaProvider < FreeTestTarget > ,
26- configuration: RemoteConfigProtocol ) {
27-
30+ configuration: RemoteConfigProtocol
31+ ) {
2832 self . localStorage = localStorage
2933 self . deviceCheckService = deviceCheckService
3034 self . apiProvider = apiProvider
31- self . renewableRequest = . init( provider: apiProvider, alertManager: NetworkingAlertManager ( ) , notRenewableErrorCodes: [ 400 ] )
35+ self . renewableRequest = . init(
36+ provider: apiProvider,
37+ alertManager: NetworkingAlertManager ( ) ,
38+ notRenewableErrorCodes: [ 400 ]
39+ )
3240 self . configuration = configuration
3341 }
3442
3543 func uploadPIN( jsRequest: FreeTestUploadPinRequest ) -> Promise < FreeTestPinUploadResponse > {
36- deviceCheckService. generatePayload ( )
37- . then { deviceCheckToken -> Promise < ( String , DeviceGUIDModel ) > in
38- console ( " 📗 Device Check Token (1/3) \n : \( deviceCheckToken) " )
39- return self . generateGUIDIfNeeded ( ) . map { ( deviceCheckToken, $0) }
40- }
41- . then { deviceCheckToken, guidModel -> Promise < FreeTestCreateSubscriptionResponseModel > in
42- console ( " 📗 Generate GUID (2/3) \n : \( guidModel) " )
43- let headers = FreeTestRequestHeader ( deviceCheckToken: deviceCheckToken)
44- let request = FreeTestCreateSubscriptionRequestModel ( code: jsRequest. pin, guid: guidModel. uuid)
45-
46- return self . createSubscription ( headers: headers, request: request)
47- }
48- . then { apiResponse -> Promise < FreeTestPinUploadResponse > in
49- console ( " 📗 API Response (3/3) \n : \( apiResponse) " )
50- return . value( . init( result: . success) )
51- }
44+ return generateGUIDIfNeeded ( )
45+ . then { guid -> Promise < FreeTestCreateSubscriptionResponseModel > in
46+ let request = FreeTestCreateSubscriptionRequestModel ( code: jsRequest. pin, guid: guid. uuid)
47+ return self . createSubscription ( request: request)
48+ } . then { apiResponse -> Promise < FreeTestPinUploadResponse > in
49+ console ( " 📗 API Response \n : \( apiResponse) " )
50+ return . value( . init( result: . success) )
51+ }
5252 }
5353
5454 func subscriptionInfo( ) -> Promise < FreeTestSubscriptionInfoResponse > {
@@ -142,7 +142,7 @@ class FreeTestService {
142142 let nowTimestamp = Int ( Date ( ) . timeIntervalSince1970)
143143 guard ( nowTimestamp - guid. update) > config. interval else { return }
144144
145- let headers = FreeTestRequestHeader ( deviceCheckToken : deviceCheckToken , accessToken: guid. token)
145+ let headers = FreeTestRequestHeader ( accessToken: guid. token)
146146 let target : FreeTestTarget = . getSubscription( header: headers, request: FreeTestGetSubscriptionRequestModel ( guid: guid. uuid) )
147147 self ? . apiProvider. request ( target) { result in
148148 switch result {
@@ -205,11 +205,14 @@ class FreeTestService {
205205 }
206206}
207207
208- // Cloud API
209- //
208+ // MARK: - CloudAPI
209+
210210private extension FreeTestService {
211- func createSubscription( headers: FreeTestRequestHeader , request: FreeTestCreateSubscriptionRequestModel ) -> Promise < FreeTestCreateSubscriptionResponseModel > {
212- let target : FreeTestTarget = . createSubscription( header: headers, request: request)
211+ func createSubscription(
212+ header: FreeTestRequestHeader = . init( ) ,
213+ request: FreeTestCreateSubscriptionRequestModel
214+ ) -> Promise < FreeTestCreateSubscriptionResponseModel > {
215+ let target : FreeTestTarget = . createSubscription( header: header, request: request)
213216 return renewableRequest. make ( target: target)
214217 . recover { error -> Promise < Response > in
215218 if ( error as? InternalError ) == nil {
@@ -230,6 +233,5 @@ private extension FreeTestService {
230233 throw error
231234 }
232235 }
233-
234236 }
235237}
0 commit comments