@@ -34,7 +34,7 @@ public class Service: Equatable {
3434 private var session : Session !
3535 private var pryvServiceInfoUrl : String
3636 private var serviceCustomization : Json ?
37- private var pryvServiceInfo : Promise < PryvServiceInfo > ?
37+ private var pryvServiceInfo : PryvServiceInfo ?
3838 private var pollingInfo : ( poll: String , poll_ms: Double , callback: ( AuthResult ) -> ( ) ) ? {
3939 didSet {
4040 var currentState : AuthState ? = nil
@@ -81,21 +81,25 @@ public class Service: Equatable {
8181 /// - Returns: promise to service info object, customized if needed
8282 public func info( forceFetch: Bool = false ) -> Promise < PryvServiceInfo > {
8383 if forceFetch || pryvServiceInfo == nil {
84- pryvServiceInfo = Promise < PryvServiceInfo > ( on: . global( qos: . background) , { ( fullfill, reject) in
84+ var pryvServiceInfoPromise = Promise < PryvServiceInfo > ( on: . global( qos: . background) , { ( fullfill, reject) in
8585 self . session. request ( URL ( string: self . pryvServiceInfoUrl) !) . responseDecodable ( of: PryvServiceInfo . self) { response in
8686 switch response. result {
8787 case . success( var serviceInfo) :
88- serviceInfo = self . customize ( serviceInfo: serviceInfo, with: self . serviceCustomization)
89- fullfill ( serviceInfo)
88+ self . pryvServiceInfo = self . customize ( serviceInfo: serviceInfo, with: self . serviceCustomization)
89+
90+ fullfill ( self . pryvServiceInfo!)
9091 case . failure( let error) :
9192 let servError = PryvError . requestError ( error. localizedDescription)
9293 reject ( servError)
9394 }
9495 }
9596 } )
97+ return pryvServiceInfoPromise
9698 }
9799
98- return pryvServiceInfo!
100+ return Promise < PryvServiceInfo > ( on: . global( qos: . background) , { ( fullfill, reject) in
101+ fullfill ( self . pryvServiceInfo!)
102+ } )
99103 }
100104
101105 /// Return service info parameters
@@ -106,7 +110,7 @@ public class Service: Equatable {
106110 if pryvServiceInfo == nil {
107111 return nil
108112 }
109- return try ? await ( pryvServiceInfo!)
113+ return self . pryvServiceInfo!
110114 }
111115
112116 /// Return an API Endpoint from a username and token and a PryvServiceInfo
@@ -127,7 +131,7 @@ public class Service: Equatable {
127131 /// - token (optional)
128132 /// - Returns: API Endpoint from a username and token and the PryvServiceInfo
129133 public func apiEndpointFor( username: String , token: String ? = nil ) -> Promise < String > {
130- let serviceInfoPromise = pryvServiceInfo ?? info ( )
134+ let serviceInfoPromise = info ( )
131135
132136 return serviceInfoPromise. then { serviceInfo in
133137 return self . buildApiEndpoint ( serviceInfo: serviceInfo, username: username, token: token)
@@ -184,7 +188,7 @@ public class Service: Equatable {
184188 /// }
185189 /// ```
186190 public func setUpAuth( authSettings: Json , stateChangedCallback: @escaping ( AuthResult ) -> ( ) ) -> Promise < String > {
187- let serviceInfoPromise = pryvServiceInfo ?? info ( )
191+ let serviceInfoPromise = info ( )
188192 return serviceInfoPromise. then { serviceInfo in
189193 let string = serviceInfo. register. hasSuffix ( " / " ) ? serviceInfo. register + " access " : serviceInfo. register + " /access "
190194 var request = URLRequest ( url: URL ( string: string) !)
0 commit comments