diff --git a/Sources/CorePayments/Networking/Enums/Environment.swift b/Sources/CorePayments/Networking/Enums/Environment.swift index 7420301c..db83831e 100644 --- a/Sources/CorePayments/Networking/Enums/Environment.swift +++ b/Sources/CorePayments/Networking/Enums/Environment.swift @@ -4,13 +4,16 @@ import Foundation public enum Environment { case sandbox case live - + case custom(baseURL: String) + var baseURL: URL { switch self { case .sandbox: return URL(string: "https://api-m.sandbox.paypal.com")! case .live: return URL(string: "https://api-m.paypal.com")! + case .custom(let baseURL): + return URL(string: baseURL)! } } @@ -20,6 +23,8 @@ public enum Environment { return URL(string: "https://www.sandbox.paypal.com/graphql")! case .live: return URL(string: "https://www.paypal.com/graphql")! + case .custom(let baseURL): + return URL(string: "/graphql", relativeTo: URL(string: baseURL))! } } @@ -30,6 +35,8 @@ public enum Environment { return URL(string: "https://sandbox.paypal.com/agreements/approve")! case .live: return URL(string: "https://paypal.com/agreements/approve")! + case .custom(let baseURL): + return URL(string: "/agreements/approve", relativeTo: URL(string: baseURL))! } } @@ -39,6 +46,8 @@ public enum Environment { return "sandbox" case .live: return "live" + case .custom(let baseURL): + return "custom with baseURL: \(baseURL)" } } } diff --git a/Sources/FraudProtection/CoreConfig+MagnesSDK.swift b/Sources/FraudProtection/CoreConfig+MagnesSDK.swift index 7a7e1009..03a392ce 100644 --- a/Sources/FraudProtection/CoreConfig+MagnesSDK.swift +++ b/Sources/FraudProtection/CoreConfig+MagnesSDK.swift @@ -11,6 +11,9 @@ extension CoreConfig { return .SANDBOX case .live: return .LIVE + case .custom: + // TODO: determine if this is correct, or if Magnes also needs to be custom + return .SANDBOX } } } diff --git a/Sources/PayPalWebPayments/Environment+PayPalWebCheckout.swift b/Sources/PayPalWebPayments/Environment+PayPalWebCheckout.swift index dbde62da..d398cd14 100644 --- a/Sources/PayPalWebPayments/Environment+PayPalWebCheckout.swift +++ b/Sources/PayPalWebPayments/Environment+PayPalWebCheckout.swift @@ -13,6 +13,8 @@ extension Environment { return URL(string: "https://www.sandbox.paypal.com")! case .live: return URL(string: "https://www.paypal.com")! + case .custom(let baseURL): + return URL(string: baseURL)! } } // swiftlint:enable force_unwrapping