From a30941bdb8e49709376c2068cbf6a23efceeda7f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 6 Jan 2022 11:19:29 +1100 Subject: [PATCH] Fixes for tests --- .../ClientPortal/ApplePayDomainController.php | 2 - .../Controllers/CompanyGatewayController.php | 6 ++ app/Jobs/Util/ApplePayDomain.php | 93 +++++++++++++++++++ app/PaymentDrivers/StripePaymentDriver.php | 14 +-- .../Feature/ApplePayDomainMerchantUrlTest.php | 28 ++++++ 5 files changed, 135 insertions(+), 8 deletions(-) create mode 100644 app/Jobs/Util/ApplePayDomain.php diff --git a/app/Http/Controllers/ClientPortal/ApplePayDomainController.php b/app/Http/Controllers/ClientPortal/ApplePayDomainController.php index 8901102fec..a62249313a 100644 --- a/app/Http/Controllers/ClientPortal/ApplePayDomainController.php +++ b/app/Http/Controllers/ClientPortal/ApplePayDomainController.php @@ -24,8 +24,6 @@ class ApplePayDomainController extends Controller private array $stripe_keys = ['d14dd26a47cecc30fdd65700bfb67b34', 'd14dd26a37cecc30fdd65700bfb55b23']; - private ?Company $company = null; - public function showAppleMerchantId(Request $request) { diff --git a/app/Http/Controllers/CompanyGatewayController.php b/app/Http/Controllers/CompanyGatewayController.php index f810c6e44c..4f254dff95 100644 --- a/app/Http/Controllers/CompanyGatewayController.php +++ b/app/Http/Controllers/CompanyGatewayController.php @@ -20,6 +20,7 @@ use App\Http\Requests\CompanyGateway\EditCompanyGatewayRequest; use App\Http\Requests\CompanyGateway\ShowCompanyGatewayRequest; use App\Http\Requests\CompanyGateway\StoreCompanyGatewayRequest; use App\Http\Requests\CompanyGateway\UpdateCompanyGatewayRequest; +use App\Jobs\Util\ApplePayDomain; use App\Models\Client; use App\Models\CompanyGateway; use App\Repositories\CompanyRepository; @@ -45,6 +46,9 @@ class CompanyGatewayController extends BaseController public $forced_includes = []; + private array $stripe_keys = ['d14dd26a47cecc30fdd65700bfb67b34', 'd14dd26a37cecc30fdd65700bfb55b23']; + + /** * CompanyGatewayController constructor. * @param CompanyRepository $company_repo @@ -379,6 +383,8 @@ class CompanyGatewayController extends BaseController $company_gateway->save(); + ApplePayDomain::dispatch($company_gateway, $company_gateway->company->db); + return $this->itemResponse($company_gateway); } diff --git a/app/Jobs/Util/ApplePayDomain.php b/app/Jobs/Util/ApplePayDomain.php new file mode 100644 index 0000000000..305abe8e55 --- /dev/null +++ b/app/Jobs/Util/ApplePayDomain.php @@ -0,0 +1,93 @@ +db = $db; + + $this->company_gateway = $company_gateway; + + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + MultiDB::setDB($this->db); + + if(in_array($this->company_gateway->gateway_key, $this->stripe_keys)) + { + $domain = $this->getDomain(); + + $this->company_gateway->driver()->setApplePayDomain($domain); + + } + + } + + private function getDomain() + { + + $domain = ''; + + if(Ninja::isHosted()) + { + + if($this->company->portal_mode == 'domain'){ + $domain = $this->company->portal_domain; + } + else{ + $domain = $this->company->subdomain . '.' . config('ninja.app_domain'); + } + + } + else { + + $domain = config('ninja.app_url'); + } + + $parsed_url = parse_url($domain); + + return $parsed_url['host']; + + } + +} diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index 48db7ff7c4..8e5b960b26 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -725,13 +725,15 @@ class StripePaymentDriver extends BaseDriver return (new Verify($this))->run(); } - public function setDomain() + public function setApplePayDomain($domain) { - // \Stripe\ApplePayDomain::create([ - // 'domain_name' => 'example.com', - // ],[ - // 'stripe_account' => '{{CONNECTED_ACCOUNT_ID}}', - // ]); + + $this->init(); + + \Stripe\ApplePayDomain::create([ + 'domain_name' => $domain, + ],$this->stripe_connect_auth); + } public function disconnect() diff --git a/tests/Feature/ApplePayDomainMerchantUrlTest.php b/tests/Feature/ApplePayDomainMerchantUrlTest.php index 869652de1b..b670970db5 100644 --- a/tests/Feature/ApplePayDomainMerchantUrlTest.php +++ b/tests/Feature/ApplePayDomainMerchantUrlTest.php @@ -38,6 +38,11 @@ class ApplePayDomainMerchantUrlTest extends TestCase public function testMerchantFieldGet() { + + if (! config('ninja.testvars.stripe')) { + $this->markTestSkipped('Skip test no company gateways installed'); + } + $config = new \stdClass; $config->publishableKey = "pk_test"; $config->apiKey = "sk_test"; @@ -61,4 +66,27 @@ class ApplePayDomainMerchantUrlTest extends TestCase $response->assertStatus(200); $this->assertEquals("merchant_id", $arr); } + + public function testDomainParsing() + { + $domain = 'http://ninja.test:8000'; + + $parsed = parse_url($domain); + + $this->assertEquals('ninja.test', $parsed['host']); + + $domain = 'ninja.test:8000'; + + $parsed = parse_url($domain); + + $this->assertEquals('ninja.test', $parsed['host']); + + $domain = 'http://ninja.test:8000/afadf/dfdfdf/dfdfasf'; + + $parsed = parse_url($domain); + + $this->assertEquals('ninja.test', $parsed['host']); + + + } }