Skip to content

Commit

Permalink
feat: iDeal via Adyen , form with redirect component feature (#754)
Browse files Browse the repository at this point in the history
* chore: Add toggle in the Debug application for Legacy-Workflows at session creation (#733)

* [TWS-37]HTTP header for Legacy-Workflows based on useNewWorkflows and method type

* [TWS-37][iDeal via Adyen][iOS]Add toggle in the testing application for Legacy-Workflows at session creation

* Update: fixing target membership for spm debug app

* Update: fix typo

* feat: [iDeal via Adyen][iOS]Enable ADYEN_IDEAL under list of displayed payment methods for headless  (#735)

* [TWS-37]HTTP header for Legacy-Workflows based on useNewWorkflows and method type

* [TWS-37][iDeal via Adyen][iOS]Add toggle in the testing application for Legacy-Workflows at session creation

* Update: fixing target membership for spm debug app

* Update: fix typo

* feat: [TWS-30]Enable ADYEN_IDEAL under list of displayed payment methods for headless

* chore: TWS-30 - entry point for headless ADYEN_IDEAL, some code refactoring

* chore: unit tests for ideal compatible with headless type, some refactoring to be able to run these without code duplication

* feat: [iDeal via Adyen][iOS] BanksComponent for banks list flow and Payment manager (TWS-29, TWS-31) (#747)

* feat: TWS-31 skeleton and some unit tests for bank components

* feat: BanksComponent/events definition

* feature: interface definitions for ideal

* chore: added PrimerHeadlessStartable, PrimerHeadlessSubmitable

* feat: webredirect handoff scheleton, added errors, validations definitions

* chore: fetch list of banks

* chore: banks component with unit tests

* chore: validation unit tests

* chore: PrimerHeadlessFormWithRedirectManagerTests

* feat: show list of banks, filter list of bank, handle tap

* chore: changes for unit tests, UI

* feat: updated constructor for BanksListView, test changes

* chore: minor improvements, tests cleanup

* chore: added separate folder/group for New UI/FormWithRedirect/

* feat: ideal via headless Debug App UI prettify

* chore: added comment

* chore: unit tests handle flow failure, cancel in interface

* chore: added PrimerHeadlessCancellable and wired cancel flow on BanksComponent

* feat: ideal headless manager - moved payment method type at init

* feat: Web redirect flow for ideal (#752)

* feat: TWS-31 skeleton and some unit tests for bank components

* feat: BanksComponent/events definition

* feature: interface definitions for ideal

* chore: added PrimerHeadlessStartable, PrimerHeadlessSubmitable

* feat: webredirect handoff scheleton, added errors, validations definitions

* chore: fetch list of banks

* chore: banks component with unit tests

* chore: validation unit tests

* chore: PrimerHeadlessFormWithRedirectManagerTests

* feat: show list of banks, filter list of bank, handle tap

* chore: changes for unit tests, UI

* feat: updated constructor for BanksListView, test changes

* chore: minor improvements, tests cleanup

* chore: added separate folder/group for New UI/FormWithRedirect/

* feat: ideal via headless Debug App UI prettify

* chore: added comment

* chore: unit tests handle flow failure, cancel in interface

* chore: added PrimerHeadlessCancellable and wired cancel flow on BanksComponent

* feat: ideal headless manager - moved payment method type at init

* wip

* feat: web component refactoring

* feat: web redirect component logging, some additional bankscomponent changes

* feat: renaming some of the public interfaces, changes on unit tests

* chore: interface alignment

* chore: renaming PrimerHeadlessFormComponent -> PrimerHeadlessMainComponent

* chore: renaming FormCollectableData -> MainCollectableData

* chore: cleaning some unused interfaces

* feat: public interface changes for provide inside ComponentWithRedirectManager

* feat: adding payment method type in the BankSelectorTokenizationDelegate

* feat: Web component for ideal

* feat: Web component for ideal - split into 2 delegates and unit tests

* chore: end of flow, dismiss banks list view controller, some additional loading processing

* feat: web redirect steps/logs

* chore: PaymentMethodTokenizationViewModel+Logic - some minor refact - method extraction

* chore: steps generic at PrimerHeadlessCollectDataComponent

* chore: reverted some unnecessary changes

* chore: cleanup files resurfaced with merge

* chore: added throws at ComponentWithRedirectManager/provide

* chore: unit tests, ObjC wrapper

* chore: ObjC compatibility, unit tests

* chore: fixing unit tests

* chore: adding payment method type to logs, removed error delegate

* chore: adding accessibility identifiers

* chore: improve accessibility ids dropin/headless

* chore: addressing some PR comments

* chore: accessibility ids for E2E tests

* chore: better handling of submit, some unit tests updates

* chore: changes for submit, tests

* chore: renamed PrimerHeadlessMainComponentWrapper -> PrimerHeadlessBanksComponentWrapper for the ObjC wrapper (addressing PR comment)

* chore: renamed generic component and moved to composable file

* chore: initial extract of new BanksTokenizationComponent

* chore: align file names after components rename

* chore: refactoring into the BanksTokenizationComponent.swift

* chore: finalized refactoring of BanksTokenizationComponent

added extra logging
bugifxes

* chore: updated error handling according to latest master

* chore: updated tests with paymentmethodtype

* chore: IssuingBank, BanksCollectableData and PrimerValidationError to conform to Encodable

IssuingBank - var rename from iconUrlStr to iconUrl to match Android implementation

* chore: Alignment with Android implementation regarding PrimerHeadlessCollectableDataCancellableComponent

* chore: cleanup

* chore: change generic parameter name

* chore: merge conflict sorted

* chore: Fixed mocked data for unit tests

---------

Co-authored-by: Alexandru Chis <Alexandru Chis>
Co-authored-by: StefanV-PRIMERIO <[email protected]>
Co-authored-by: Niall Quinn <[email protected]>
  • Loading branch information
3 people authored Jan 15, 2024
1 parent e99a3f5 commit 8d6173d
Show file tree
Hide file tree
Showing 54 changed files with 6,828 additions and 1,257 deletions.
47 changes: 47 additions & 0 deletions Debug App/Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
PODS:
- IQKeyboardManagerSwift (6.5.16)
- KlarnaMobileSDK (2.2.2):
- KlarnaMobileSDK/full (= 2.2.2)
- KlarnaMobileSDK/full (2.2.2)
- Primer3DS (2.0.2)
- PrimerIPay88MYSDK (0.1.7)
- PrimerKlarnaSDK (1.0.4):
- KlarnaMobileSDK (= 2.2.2)
- PrimerNolPaySDK (1.0.1)
- PrimerSDK (2.18.3):
- PrimerSDK/Core (= 2.18.3)
- PrimerSDK/Core (2.18.3)

DEPENDENCIES:
- IQKeyboardManagerSwift
- Primer3DS
- PrimerIPay88MYSDK
- PrimerKlarnaSDK
- PrimerNolPaySDK
- PrimerSDK (from `../`)

SPEC REPOS:
trunk:
- IQKeyboardManagerSwift
- KlarnaMobileSDK
- Primer3DS
- PrimerIPay88MYSDK
- PrimerKlarnaSDK
- PrimerNolPaySDK

EXTERNAL SOURCES:
PrimerSDK:
:path: "../"

SPEC CHECKSUMS:
IQKeyboardManagerSwift: 12d89768845bb77b55cc092ecc2b1f9370f06b76
KlarnaMobileSDK: 23b44390d06c6e3a90b5325bea6c10bf97ac6044
Primer3DS: 9838b509513dcdb41a8b2e5023dfabe3dae761c9
PrimerIPay88MYSDK: 436ee0be7e2c97e4e81456ccddee20175e9e3c4d
PrimerKlarnaSDK: de4b8b8fda075e3e4ebbd4ab80bd141c76a30d85
PrimerNolPaySDK: 08b140ed39b378a0b33b4f8746544a402175c0cc
PrimerSDK: eb04e446510e61c1af529261fe938129b34a9e1c

PODFILE CHECKSUM: d4a25e6279c7edfc36cd259108d9afa9f81e1da5

COCOAPODS: 1.14.2
30 changes: 30 additions & 0 deletions Debug App/Primer.io Debug App SPM.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
objects = {

/* Begin PBXBuildFile section */
E11F475C2B06C5A40091C31F /* MerchantHeadlessCheckoutBankViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F47582B06C5A40091C31F /* MerchantHeadlessCheckoutBankViewController.swift */; };
E11F475D2B06C5A40091C31F /* BanksListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F47592B06C5A40091C31F /* BanksListView.swift */; };
E11F475E2B06C5A40091C31F /* BanksListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F475A2B06C5A40091C31F /* BanksListModel.swift */; };
E11F475F2B06C5A40091C31F /* ImageViewWithUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11F475B2B06C5A40091C31F /* ImageViewWithUrl.swift */; };
E1AB44D02AFE139600639DC5 /* URL+NetworkHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1AB44CF2AFE139600639DC5 /* URL+NetworkHeaders.swift */; };
049A055C2B4BF044002CEEBA /* MerchantHeadlessVaultManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A055B2B4BF044002CEEBA /* MerchantHeadlessVaultManagerViewController.swift */; };
F00C65F82ACC67FA00187028 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC5687FF32E8661F1A00CE5 /* AppDelegate.swift */; };
F00C65F92ACC67FA00187028 /* Data+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1594BC5C96ECC3F46C811B2F /* Data+Extensions.swift */; };
Expand Down Expand Up @@ -147,6 +152,11 @@
DAC5687FF32E8661F1A00CE5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
DBC8EA85D1CBC1EC4AB3EB8C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
DECCDC4079DC6471CEDDEA84 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E11F47582B06C5A40091C31F /* MerchantHeadlessCheckoutBankViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MerchantHeadlessCheckoutBankViewController.swift; sourceTree = "<group>"; };
E11F47592B06C5A40091C31F /* BanksListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BanksListView.swift; sourceTree = "<group>"; };
E11F475A2B06C5A40091C31F /* BanksListModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BanksListModel.swift; sourceTree = "<group>"; };
E11F475B2B06C5A40091C31F /* ImageViewWithUrl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageViewWithUrl.swift; sourceTree = "<group>"; };
E1AB44CF2AFE139600639DC5 /* URL+NetworkHeaders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+NetworkHeaders.swift"; sourceTree = "<group>"; };
E1C3EF0BA039C0A50EDE13A5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Main.strings; sourceTree = "<group>"; };
E63F5C5C1FD2F3E6CB02EC5A /* HeadlessUniversalCheckoutTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadlessUniversalCheckoutTests.swift; sourceTree = "<group>"; };
E7640DB186F9638C2F556F77 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Main.strings; sourceTree = "<group>"; };
Expand Down Expand Up @@ -314,6 +324,7 @@
isa = PBXGroup;
children = (
E8DE1E4FB055B60582977315 /* Networking.swift */,
E1AB44CF2AFE139600639DC5 /* URL+NetworkHeaders.swift */,
77E08473D1DF8C47A6EB61B2 /* Networking+Models.swift */,
);
path = Network;
Expand Down Expand Up @@ -446,6 +457,17 @@
name = Products;
sourceTree = "<group>";
};
E11F47572B06C5A40091C31F /* FormWithRedirect */ = {
isa = PBXGroup;
children = (
E11F47582B06C5A40091C31F /* MerchantHeadlessCheckoutBankViewController.swift */,
E11F47592B06C5A40091C31F /* BanksListView.swift */,
E11F475A2B06C5A40091C31F /* BanksListModel.swift */,
E11F475B2B06C5A40091C31F /* ImageViewWithUrl.swift */,
);
path = FormWithRedirect;
sourceTree = "<group>";
};
E1A2F78003351E14426E0B36 /* Analytics */ = {
isa = PBXGroup;
children = (
Expand All @@ -468,6 +490,7 @@
EF5FBE3673FBCB40F55F4DC0 /* New UI */ = {
isa = PBXGroup;
children = (
E11F47572B06C5A40091C31F /* FormWithRedirect */,
0ED746F8924E70AD868BC0F4 /* MerchantNewLineItemViewController.swift */,
);
path = "New UI";
Expand Down Expand Up @@ -596,11 +619,18 @@
F00C66012ACC67FA00187028 /* CreateClientToken.swift in Sources */,
F00C66022ACC67FA00187028 /* TestScenario.swift in Sources */,
F00C66032ACC67FA00187028 /* TransactionResponse.swift in Sources */,
E1AB44D02AFE139600639DC5 /* URL+NetworkHeaders.swift in Sources */,
F00C66042ACC67FA00187028 /* Networking+Models.swift in Sources */,
E11F475D2B06C5A40091C31F /* BanksListView.swift in Sources */,
F00C66052ACC67FA00187028 /* Networking.swift in Sources */,
F00C66062ACC67FA00187028 /* MerchantDropInUIViewController.swift in Sources */,
F00C66082ACC67FA00187028 /* MerchantHeadlessCheckoutAvailablePaymentMethodsViewController.swift in Sources */,
F00C66092ACC67FA00187028 /* MerchantHeadlessCheckoutCardComponentsViewController.swift in Sources */,
E11F475C2B06C5A40091C31F /* MerchantHeadlessCheckoutBankViewController.swift in Sources */,
E11F475E2B06C5A40091C31F /* BanksListModel.swift in Sources */,
F00C660A2ACC67FA00187028 /* MerchantHeadlessCheckoutRawDataViewController.swift in Sources */,
F00C660B2ACC67FA00187028 /* MerchantHeadlessCheckoutRawPhoneNumberDataViewController.swift in Sources */,
E11F475F2B06C5A40091C31F /* ImageViewWithUrl.swift in Sources */,
F00C660C2ACC67FA00187028 /* MerchantHeadlessCheckoutRawRetailDataViewController.swift in Sources */,
F00C660D2ACC67FA00187028 /* MerchantResultViewController.swift in Sources */,
F00C660E2ACC67FA00187028 /* MerchantSessionAndSettingsViewController.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
Loading

0 comments on commit 8d6173d

Please sign in to comment.