Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eligibility API logic #286

Merged
merged 56 commits into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
2a07770
Add EligibilityRequest file
richherrera Jul 11, 2024
f50baa8
Add EligibilityResult file
richherrera Jul 11, 2024
e564f3e
Add EligibilityClient file
richherrera Jul 11, 2024
193ab5c
Add EligilibilityClient method
richherrera Jul 11, 2024
de28ce6
Add Result properties
richherrera Jul 11, 2024
fc37fd6
Add request properties
richherrera Jul 11, 2024
de7bf1a
Add EligibilityVariables file
richherrera Jul 11, 2024
e0573a1
Remove header
richherrera Jul 11, 2024
c0000b4
Add EligibilityAPI
richherrera Jul 11, 2024
8a9f7e0
Sort directory
richherrera Jul 11, 2024
fa4863c
Add properties and initializers
richherrera Jul 11, 2024
e366890
Add tests files
richherrera Jul 11, 2024
bfd4749
Fix lints
richherrera Jul 11, 2024
a3000a1
Fix lint
richherrera Jul 11, 2024
f63935d
PR Feedback
richherrera Jul 15, 2024
fdc17bf
Conform Encodable and add variable eligibility variables properties
richherrera Jul 15, 2024
26b72e4
Add supported currency type enum
richherrera Jul 15, 2024
7fb6765
Add eligibility intent enum
richherrera Jul 15, 2024
8daa52b
Add eligibility result properties
richherrera Jul 15, 2024
4198535
Add Eligibility Response object
richherrera Jul 15, 2024
c1b1a75
Sort files Eligibility directory
richherrera Jul 15, 2024
3d41794
Update eligibility request with enum types
richherrera Jul 15, 2024
7ff6bb1
Add parameters and initializer on Client
richherrera Jul 15, 2024
1a34e59
Add API logic
richherrera Jul 15, 2024
4a87950
Add mock and remove intent enum
richherrera Jul 15, 2024
d8b3b76
Remove final
richherrera Jul 15, 2024
805304d
Add docstrings on Client
richherrera Jul 15, 2024
8dbf00c
Expose intents
richherrera Jul 15, 2024
32dddf8
Change Decodable instead of Codable for response model
richherrera Jul 15, 2024
65749c2
Update Variables struct
richherrera Jul 15, 2024
fed4f0c
Remove currency enum
richherrera Jul 15, 2024
a5aec4c
Add docstring for Request model
richherrera Jul 15, 2024
64c6cee
Add mock API
richherrera Jul 15, 2024
2408217
Add client tests
richherrera Jul 15, 2024
3a0c83a
Add Result docstrings
richherrera Jul 15, 2024
f6de949
Rename curency to currencyCode
richherrera Jul 15, 2024
2e15a23
Add marks
richherrera Jul 15, 2024
2cd8c4b
Fix merge conflicts
richherrera Jul 15, 2024
2ede375
Fix lint
richherrera Jul 15, 2024
cecce87
Merge branch 'fix-venmo-feature-merge' into eligibility-logic-request
richherrera Jul 15, 2024
3be4ecb
Add mising file
richherrera Jul 15, 2024
1ee3d2b
Add functionality on demo app
richherrera Jul 15, 2024
65ebc50
Merge branch 'venmo-feature' into eligibility-logic-request
richherrera Jul 16, 2024
cd016e3
PR feedback
richherrera Jul 16, 2024
c9f14ab
Change initializer
richherrera Jul 16, 2024
ee7e160
Fix tests
richherrera Jul 16, 2024
9a6dc5a
Fix coding key
richherrera Jul 16, 2024
54e53c0
Add EligibilityIntent docstrings and remove unnecessary intents
richherrera Jul 17, 2024
df51eb0
Fix UTs
richherrera Jul 17, 2024
8f253cf
Pass intent as parameter and mimic UI as others views
richherrera Jul 17, 2024
644df70
Change initializer
richherrera Jul 18, 2024
f9f2df3
Remove Recovered References directory
richherrera Jul 18, 2024
b422115
Lowercase supported payment methods
richherrera Jul 18, 2024
33d3d46
Use CurrentState enum instead of VenmoState
richherrera Jul 18, 2024
fb550e2
Remove VenmoState file
richherrera Jul 18, 2024
19239f9
Update Sources/CorePayments/Eligibility/EligibilityAPI.swift
richherrera Jul 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Demo/Demo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
3BF999762A8AC093009CBDF2 /* UpdateSetupTokenResultView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BF999752A8AC093009CBDF2 /* UpdateSetupTokenResultView.swift */; };
3BF999782A8AD072009CBDF2 /* CreatePaymentTokenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BF999772A8AD072009CBDF2 /* CreatePaymentTokenView.swift */; };
3BF9997A2A8AE12C009CBDF2 /* PaymentTokenResultView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BF999792A8AE12C009CBDF2 /* PaymentTokenResultView.swift */; };
459633122C45E34A002008EF /* VenmoState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 459633112C45E34A002008EF /* VenmoState.swift */; };
45B063A82C3C4D1200E743F2 /* VenmoPaymentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063A72C3C4D1200E743F2 /* VenmoPaymentView.swift */; };
45B063AC2C3C4D5C00E743F2 /* VenmoPaymentsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063AB2C3C4D5C00E743F2 /* VenmoPaymentsViewModel.swift */; };
5301468C28918B4D00184F22 /* ApprovalResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5301468B28918B4D00184F22 /* ApprovalResult.swift */; };
Expand Down Expand Up @@ -174,6 +175,7 @@
3BF999752A8AC093009CBDF2 /* UpdateSetupTokenResultView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateSetupTokenResultView.swift; sourceTree = "<group>"; };
3BF999772A8AD072009CBDF2 /* CreatePaymentTokenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatePaymentTokenView.swift; sourceTree = "<group>"; };
3BF999792A8AE12C009CBDF2 /* PaymentTokenResultView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentTokenResultView.swift; sourceTree = "<group>"; };
459633112C45E34A002008EF /* VenmoState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VenmoState.swift; sourceTree = "<group>"; };
45B063A72C3C4D1200E743F2 /* VenmoPaymentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VenmoPaymentView.swift; sourceTree = "<group>"; };
45B063AB2C3C4D5C00E743F2 /* VenmoPaymentsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VenmoPaymentsViewModel.swift; sourceTree = "<group>"; };
5301468B28918B4D00184F22 /* ApprovalResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApprovalResult.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -456,6 +458,7 @@
3B2027402A8A72050007907E /* VaultState.swift */,
3BA0A58A2B1E240300330681 /* VaultViewModel.swift */,
45B063AB2C3C4D5C00E743F2 /* VenmoPaymentsViewModel.swift */,
459633112C45E34A002008EF /* VenmoState.swift */,
);
path = ViewModels;
sourceTree = "<group>";
Expand Down Expand Up @@ -637,6 +640,7 @@
BECD84A027036DC2007CCAE4 /* Environment.swift in Sources */,
80F33CF126F8E7D9006811B1 /* ProcessOrderParams.swift in Sources */,
53B9E8EA28C93B4400719239 /* OrderRequestHelpers.swift in Sources */,
459633122C45E34A002008EF /* VenmoState.swift in Sources */,
3BCCFE4B2A9D985F00C5102F /* FeatureSelectionView.swift in Sources */,
CB9ED44C283FDA900081F4DE /* PaymentButtonEnums+Extension.swift in Sources */,
3BB60B552B1FA00C00A298CF /* PayPalVaultViewModel.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,48 @@
import SwiftUI
import CorePayments

struct VenmoPaymentView: View {

@State private var selectedIntent: EligibilityIntent = .capture
@StateObject var venmoPaymentsViewModel = VenmoPaymentsViewModel()

var body: some View {
Text("Hello, Venmo!")
VStack(spacing: 16) {
Text("Hello, Venmo!")
Picker("Intent", selection: $selectedIntent) {
Text("AUTHORIZE").tag(EligibilityIntent.authorize)
Text("CAPTURE").tag(EligibilityIntent.capture)
}
.pickerStyle(SegmentedPickerStyle())
ZStack {
Button("Check eligibility") {
Task {
do {
try await venmoPaymentsViewModel.getEligibility(selectedIntent)
} catch {
print("Error in getting payment token. \(error.localizedDescription)")
}
}
}
.buttonStyle(RoundedBlueButtonStyle())
if case .loading = venmoPaymentsViewModel.state.isVenmoEligibleResponse {
CircularProgressView()
}
}
if case .loaded(let value) = venmoPaymentsViewModel.state.isVenmoEligibleResponse {
if value {
Text("Venmo is eligible! 🥳")
} else {
Text("Venmo is not eligible! 🫤")
}
}
}
.padding()
.background(
RoundedRectangle(cornerRadius: 10)
.stroke(.gray, lineWidth: 2)
.padding(5)
)
}
}

Expand Down
30 changes: 29 additions & 1 deletion Demo/Demo/ViewModels/VenmoPaymentsViewModel.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
import CorePayments
import Foundation

class VenmoPaymentsViewModel: ObservableObject { }
class VenmoPaymentsViewModel: ObservableObject {

let configManager = CoreConfigManager(domain: "Venmo Payments")

@Published var state = VenmoState()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Take it our leave it for this PR, but we started a transition to use a new CurrentState enum across all of the views vs individualized views with custom states. If you take a look at the PayPal Web Payments views you can see where that was in motion. Not a blocker, would just be nice to eventually share duplicated states with a shared interface. Can totally be a follow up or something we tackle when we address the other view since only PayPal Web was updated thus far.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated, thanks for your feedback: 33d3d46


func getEligibility(_ intent: EligibilityIntent) async throws {
DispatchQueue.main.async {
self.state.isVenmoEligibleResponse = .loading
}
do {
let config = try await configManager.getCoreConfig()
let eligibilityRequest = EligibilityRequest(currencyCode: "USD", intent: intent)
let eligibilityClient = EligibilityClient(config: config)
let eligibilityResult = try? await eligibilityClient.check(eligibilityRequest)
let isVenmoEligible = eligibilityResult?.isVenmoEligible ?? false

DispatchQueue.main.async {
self.state.isVenmoEligibleResponse = .loaded(isVenmoEligible)
}
} catch {
DispatchQueue.main.async {
self.state.isVenmoEligibleResponse = .error(message: error.localizedDescription)
}
print("failed in updating setup token. \(error.localizedDescription)")
}
}
}
15 changes: 15 additions & 0 deletions Demo/Demo/ViewModels/VenmoState.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import CorePayments
import Foundation

struct VenmoState {

var isVenmoEligible: Bool?

var isVenmoEligibleResponse: LoadingState<Bool> = .idle {
didSet {
if case .loaded(let value) = isVenmoEligibleResponse {
isVenmoEligible = value
}
}
}
}
54 changes: 42 additions & 12 deletions PayPal.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,17 @@
3BE7386D2B9A670400598F05 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3BE738662B9A593100598F05 /* PrivacyInfo.xcprivacy */; };
3D1763A22720722A00652E1C /* CardResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D1763A12720722A00652E1C /* CardResult.swift */; };
3DC42BA927187E8300B71645 /* ErrorResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DC42BA827187E8300B71645 /* ErrorResponse.swift */; };
459633162C46BD63002008EF /* EligibilityIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 459633152C46BD63002008EF /* EligibilityIntent.swift */; };
459633182C46BD6F002008EF /* EligibilityResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 459633172C46BD6F002008EF /* EligibilityResponse.swift */; };
4596331A2C46BD7B002008EF /* SupportedPaymentMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 459633192C46BD7B002008EF /* SupportedPaymentMethods.swift */; };
45B063B42C4035E200E743F2 /* EligibilityClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063B22C4035DB00E743F2 /* EligibilityClient.swift */; };
45B063B52C4035E500E743F2 /* EligibilityResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063B02C4034B700E743F2 /* EligibilityResult.swift */; };
45B063B62C4035EA00E743F2 /* EligibilityRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063AE2C40349300E743F2 /* EligibilityRequest.swift */; };
45B063B82C40440000E743F2 /* EligibilityVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063B72C40440000E743F2 /* EligibilityVariables.swift */; };
45B063BA2C40456F00E743F2 /* EligibilityAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063B92C40456F00E743F2 /* EligibilityAPI.swift */; };
45B063BD2C40545100E743F2 /* EligibilityClient_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063BC2C40545100E743F2 /* EligibilityClient_Tests.swift */; };
45B063BF2C40549000E743F2 /* EligibilityAPI_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063BE2C40549000E743F2 /* EligibilityAPI_Tests.swift */; };
45B063CA2C459F9900E743F2 /* MockEligibilityAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B063C92C459F9900E743F2 /* MockEligibilityAPI.swift */; };
53A2A4E228A182AC0093441C /* NativeCheckoutProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53A2A4E128A182AC0093441C /* NativeCheckoutProvider.swift */; };
62D3FB292C3DB5130046563B /* CorePayments.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 80B9F85126B8750000D67843 /* CorePayments.framework */; platformFilter = ios; };
62D3FB4B2C3ED82D0046563B /* VenmoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62D3FB492C3ED82D0046563B /* VenmoClient.swift */; };
Expand Down Expand Up @@ -253,13 +257,20 @@
3D25238127344F330099E4EB /* NativeCheckoutStartable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NativeCheckoutStartable.swift; path = Sources/PayPalNativePayments/NativeCheckoutStartable.swift; sourceTree = SOURCE_ROOT; };
3D25238B273979170099E4EB /* MockNativeCheckoutProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNativeCheckoutProvider.swift; sourceTree = "<group>"; };
3DC42BA827187E8300B71645 /* ErrorResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorResponse.swift; sourceTree = "<group>"; };
4596330F2C45DDC3002008EF /* SupportedPaymentMethods.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportedPaymentMethods.swift; sourceTree = "<group>"; };
459633152C46BD63002008EF /* EligibilityIntent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EligibilityIntent.swift; sourceTree = "<group>"; };
459633172C46BD6F002008EF /* EligibilityResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EligibilityResponse.swift; sourceTree = "<group>"; };
459633192C46BD7B002008EF /* SupportedPaymentMethods.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SupportedPaymentMethods.swift; sourceTree = "<group>"; };
45B063AE2C40349300E743F2 /* EligibilityRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityRequest.swift; sourceTree = "<group>"; };
45B063B02C4034B700E743F2 /* EligibilityResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityResult.swift; sourceTree = "<group>"; };
45B063B22C4035DB00E743F2 /* EligibilityClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityClient.swift; sourceTree = "<group>"; };
45B063B72C40440000E743F2 /* EligibilityVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityVariables.swift; sourceTree = "<group>"; };
45B063B92C40456F00E743F2 /* EligibilityAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityAPI.swift; sourceTree = "<group>"; };
45B063BC2C40545100E743F2 /* EligibilityClient_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityClient_Tests.swift; sourceTree = "<group>"; };
45B063BE2C40549000E743F2 /* EligibilityAPI_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityAPI_Tests.swift; sourceTree = "<group>"; };
45B063C02C41D08400E743F2 /* EligibilityResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityResponse.swift; sourceTree = "<group>"; };
45B063C62C41E7AA00E743F2 /* EligibilityIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EligibilityIntent.swift; sourceTree = "<group>"; };
45B063C92C459F9900E743F2 /* MockEligibilityAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockEligibilityAPI.swift; sourceTree = "<group>"; };
53A2A4E128A182AC0093441C /* NativeCheckoutProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeCheckoutProvider.swift; sourceTree = "<group>"; };
62D3FB132C3DB4D40046563B /* VenmoClient_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VenmoClient_Tests.swift; sourceTree = "<group>"; };
62D3FB2F2C3DB5130046563B /* VenmoPayments.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VenmoPayments.framework; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -570,31 +581,27 @@
path = Models;
sourceTree = "<group>";
};
62D3FB122C3DB4B30046563B /* VenmoPaymentsTests */ = {
459633142C46BD51002008EF /* Recovered References */ = {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing we can remove these Recovered References?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch, updated: f9f2df3

isa = PBXGroup;
children = (
62D3FB132C3DB4D40046563B /* VenmoClient_Tests.swift */,
4596330F2C45DDC3002008EF /* SupportedPaymentMethods.swift */,
45B063C02C41D08400E743F2 /* EligibilityResponse.swift */,
45B063C62C41E7AA00E743F2 /* EligibilityIntent.swift */,
);
path = VenmoPaymentsTests;
name = "Recovered References";
richherrera marked this conversation as resolved.
Show resolved Hide resolved
sourceTree = "<group>";
};
62D3FB4A2C3ED82D0046563B /* VenmoPayments */ = {
isa = PBXGroup;
children = (
62D3FB492C3ED82D0046563B /* VenmoClient.swift */,
);
name = VenmoPayments;
path = Sources/VenmoPayments;
sourceTree = "<group>";
};
45B063AD2C40346500E743F2 /* Eligibility */ = {
isa = PBXGroup;
children = (
45B063B92C40456F00E743F2 /* EligibilityAPI.swift */,
45B063B22C4035DB00E743F2 /* EligibilityClient.swift */,
459633152C46BD63002008EF /* EligibilityIntent.swift */,
45B063AE2C40349300E743F2 /* EligibilityRequest.swift */,
459633172C46BD6F002008EF /* EligibilityResponse.swift */,
45B063B02C4034B700E743F2 /* EligibilityResult.swift */,
45B063B72C40440000E743F2 /* EligibilityVariables.swift */,
459633192C46BD7B002008EF /* SupportedPaymentMethods.swift */,
);
path = Eligibility;
sourceTree = "<group>";
Expand All @@ -608,6 +615,23 @@
path = Eligibility;
sourceTree = "<group>";
};
62D3FB122C3DB4B30046563B /* VenmoPaymentsTests */ = {
isa = PBXGroup;
children = (
62D3FB132C3DB4D40046563B /* VenmoClient_Tests.swift */,
);
path = VenmoPaymentsTests;
sourceTree = "<group>";
};
62D3FB4A2C3ED82D0046563B /* VenmoPayments */ = {
isa = PBXGroup;
children = (
62D3FB492C3ED82D0046563B /* VenmoClient.swift */,
);
name = VenmoPayments;
path = Sources/VenmoPayments;
sourceTree = "<group>";
};
8036C1DE270F9BCF00C0F091 /* PaymentsCoreTests */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -650,6 +674,7 @@
isa = PBXGroup;
children = (
802EFBD72A9685DF00AB709D /* MockTrackingEventsAPI.swift */,
45B063C92C459F9900E743F2 /* MockEligibilityAPI.swift */,
);
path = Mocks;
sourceTree = "<group>";
Expand Down Expand Up @@ -938,6 +963,7 @@
OBJ_13 /* Products */,
805AB85726B8887D003BEE0D /* Frameworks */,
047AF85D2B4F47BD0011303B /* Resources */,
459633142C46BD51002008EF /* Recovered References */,
);
sourceTree = "<group>";
};
Expand Down Expand Up @@ -1482,6 +1508,7 @@
files = (
808EEA81291321FE001B6765 /* AnalyticsEventData_Tests.swift in Sources */,
8036C1E5270F9BE700C0F091 /* Environment_Tests.swift in Sources */,
45B063CA2C459F9900E743F2 /* MockEligibilityAPI.swift in Sources */,
80B96AAE2A980F6B00C62916 /* MockTrackingEventsAPI.swift in Sources */,
80FC261D29847AC7008EC841 /* HTTP_Tests.swift in Sources */,
45B063BD2C40545100E743F2 /* EligibilityClient_Tests.swift in Sources */,
Expand All @@ -1498,6 +1525,7 @@
buildActionMask = 2147483647;
files = (
E6022E802857C6BE008B0E27 /* GraphQLHTTPResponse.swift in Sources */,
459633182C46BD6F002008EF /* EligibilityResponse.swift in Sources */,
80E643832A1EBBD2008FD705 /* HTTPResponse.swift in Sources */,
807C5E6929102D9800ECECD8 /* AnalyticsEventData.swift in Sources */,
80E237DF2A84434B00FF18CA /* HTTPRequest.swift in Sources */,
Expand All @@ -1514,6 +1542,7 @@
80E2FDC12A83535A0045593D /* TrackingEventsAPI.swift in Sources */,
BEA100F226EFA7DE0036A6A5 /* Environment.swift in Sources */,
BEA100F026EFA7C20036A6A5 /* NetworkingClientError.swift in Sources */,
459633162C46BD63002008EF /* EligibilityIntent.swift in Sources */,
804E628629380B04004B9FEF /* AnalyticsService.swift in Sources */,
45B063BA2C40456F00E743F2 /* EligibilityAPI.swift in Sources */,
BC04837427B2FC7300FA7B46 /* URLSession+URLSessionProtocol.swift in Sources */,
Expand All @@ -1524,6 +1553,7 @@
804E62822937EBCE004B9FEF /* HTTP.swift in Sources */,
BC04836F27B2FB3600FA7B46 /* URLSessionProtocol.swift in Sources */,
065A4DBC26FCD8090007014A /* CoreSDKError.swift in Sources */,
4596331A2C46BD7B002008EF /* SupportedPaymentMethods.swift in Sources */,
BEA100E726EF9EDA0036A6A5 /* NetworkingClient.swift in Sources */,
807BF58F2A2A5D19002F32B3 /* HTTPResponseParser.swift in Sources */,
807D56AE2A869064009E591D /* GraphQLRequest.swift in Sources */,
Expand Down
Loading
Loading