@@ -84,6 +84,11 @@ public final class CardPresentPaymentStore: Store {
8484 case . loadAccounts( let siteID, let onCompletion) :
8585 loadAccounts ( siteID: siteID,
8686 onCompletion: onCompletion)
87+ case . checkDeviceSupport( let siteID, let cardReaderType, let discoveryMethod, let completion) :
88+ checkDeviceSupport ( siteID: siteID,
89+ cardReaderType: cardReaderType,
90+ discoveryMethod: discoveryMethod,
91+ onCompletion: completion)
8792 case . startCardReaderDiscovery( let siteID, let discoveryMethod, let onReaderDiscovered, let onError) :
8893 startCardReaderDiscovery ( siteID: siteID,
8994 discoveryMethod: discoveryMethod,
@@ -128,19 +133,30 @@ public final class CardPresentPaymentStore: Store {
128133// MARK: - Services
129134//
130135private extension CardPresentPaymentStore {
131- func startCardReaderDiscovery( siteID: Int64 ,
132- discoveryMethod: CardReaderDiscoveryMethod ,
133- onReaderDiscovered: @escaping ( _ readers: [ CardReader ] ) -> Void ,
134- onError: @escaping ( Error ) -> Void ) {
136+ func checkDeviceSupport( siteID: Int64 ,
137+ cardReaderType: CardReaderType ,
138+ discoveryMethod: CardReaderDiscoveryMethod ,
139+ onCompletion: ( Bool ) -> Void ) {
140+ prepareConfigProvider ( siteID: siteID)
141+ onCompletion ( cardReaderService. checkSupport ( for: cardReaderType, configProvider: commonReaderConfigProvider, discoveryMethod: discoveryMethod) )
142+ }
143+
144+ func prepareConfigProvider( siteID: Int64 ) {
145+ switch usingBackend {
146+ case . wcpay:
147+ commonReaderConfigProvider. setContext ( siteID: siteID, remote: self . remote)
148+ case . stripe:
149+ commonReaderConfigProvider. setContext ( siteID: siteID, remote: self . stripeRemote)
150+ }
151+ }
152+
153+ func startCardReaderDiscovery( siteID: Int64 ,
154+ discoveryMethod: CardReaderDiscoveryMethod ,
155+ onReaderDiscovered: @escaping ( _ readers: [ CardReader ] ) -> Void ,
156+ onError: @escaping ( Error ) -> Void ) {
157+ prepareConfigProvider ( siteID: siteID)
135158 do {
136- switch usingBackend {
137- case . wcpay:
138- commonReaderConfigProvider. setContext ( siteID: siteID, remote: self . remote)
139- try cardReaderService. start ( commonReaderConfigProvider, discoveryMethod: discoveryMethod)
140- case . stripe:
141- commonReaderConfigProvider. setContext ( siteID: siteID, remote: self . stripeRemote)
142- try cardReaderService. start ( commonReaderConfigProvider, discoveryMethod: discoveryMethod)
143- }
159+ try cardReaderService. start ( commonReaderConfigProvider, discoveryMethod: discoveryMethod)
144160 } catch {
145161 return onError ( error)
146162 }
0 commit comments