From f59b74b01bc8bfa99d403f997ad89d5b285f40c6 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 24 Sep 2019 21:22:41 +1000 Subject: [PATCH] Refactors for gateways - using keys instead of Pkeys --- app/DataMapper/CompanySettings.php | 15 --- app/Http/Middleware/SetDb.php | 2 +- app/Models/CompanyGateway.php | 2 +- app/Models/User.php | 6 +- app/Transformers/UserTransformer.php | 2 - .../2014_10_13_000000_create_users_table.php | 9 +- database/seeds/PaymentLibrariesSeeder.php | 115 +++++++++--------- database/seeds/RandomDataSeeder.php | 4 +- tests/MockAccountData.php | 4 +- 9 files changed, 73 insertions(+), 86 deletions(-) diff --git a/app/DataMapper/CompanySettings.php b/app/DataMapper/CompanySettings.php index d958c0163dea..145d83c0a634 100644 --- a/app/DataMapper/CompanySettings.php +++ b/app/DataMapper/CompanySettings.php @@ -20,10 +20,6 @@ use App\Models\Company; class CompanySettings extends BaseSettings { - public $start_of_week = ''; - public $financial_year_start = ''; - public $enable_modules = false; - public $timezone_id = ''; public $date_format_id = ''; public $datetime_format_id = ''; @@ -37,14 +33,9 @@ class CompanySettings extends BaseSettings public $payment_terms_id = 1; public $custom_label1 = ''; - public $custom_value1 = ''; public $custom_label2 = ''; - public $custom_value2 = ''; public $custom_label3 = ''; - public $custom_value3 = ''; public $custom_label4 = ''; - public $custom_value4 = ''; - public $custom_value5 = ''; public $custom_client_label1 = ''; public $custom_client_label2 = ''; @@ -174,21 +165,15 @@ class CompanySettings extends BaseSettings 'date_format_id' => 'string', 'datetime_format_id' => 'string', 'military_time' => 'bool', - 'start_of_week' => 'string', - 'financial_year_start' => 'string', 'language_id' => 'string', 'precision' => 'int', 'show_currency_symbol' => 'bool', 'show_currency_code' => 'bool', 'payment_terms_id' => 'string', 'custom_label1' => 'string', - 'custom_value1' => 'string', 'custom_label2' => 'string', - 'custom_value2' => 'string', 'custom_label3' => 'string', - 'custom_value3' => 'string', 'custom_label4' => 'string', - 'custom_value5' => 'string', 'custom_client_label1' => 'string', 'custom_client_label2' => 'string', 'custom_client_label3' => 'string', diff --git a/app/Http/Middleware/SetDb.php b/app/Http/Middleware/SetDb.php index 246cc7ef3ae4..d3496d87e428 100644 --- a/app/Http/Middleware/SetDb.php +++ b/app/Http/Middleware/SetDb.php @@ -42,7 +42,7 @@ class SetDb if(! MultiDB::findAndSetDb($request->header('X-API-TOKEN'))) { - return response()->json(json_encode($error, JSON_PRETTY_PRINT) ,403); + return response()->json(json_encode($error, JSON_PRETTY_PRINT) ,403); } diff --git a/app/Models/CompanyGateway.php b/app/Models/CompanyGateway.php index 9d03946ff452..de59a60abe0c 100644 --- a/app/Models/CompanyGateway.php +++ b/app/Models/CompanyGateway.php @@ -35,7 +35,7 @@ class CompanyGateway extends BaseModel public function gateway() { - return $this->belongsTo(Gateway::class); + return $this->belongsTo(Gateway::class, 'gateway_key', 'key'); } public function getTypeAlias($gateway_type_id) diff --git a/app/Models/User.php b/app/Models/User.php index ef09c500aef8..1cb8ea6b7681 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -70,7 +70,9 @@ class User extends Authenticatable implements MustVerifyEmail 'phone', 'signature', 'avatar', - 'accepted_terms_version' + 'accepted_terms_version', + 'oauth_user_id', + 'oauth_provider_id', ]; /** @@ -80,8 +82,6 @@ class User extends Authenticatable implements MustVerifyEmail */ protected $hidden = [ 'remember_token', - 'oauth_user_id', - 'oauth_provider_id', 'google_2fa_secret', 'google_2fa_phone', 'remember_2fa_token', diff --git a/app/Transformers/UserTransformer.php b/app/Transformers/UserTransformer.php index 79e9140a9bac..75a809e07b79 100644 --- a/app/Transformers/UserTransformer.php +++ b/app/Transformers/UserTransformer.php @@ -54,8 +54,6 @@ class UserTransformer extends EntityTransformer 'deleted_at' => $user->deleted_at, 'phone' => $user->phone, 'email_verified_at' => $user->email_verified_at, - 'oauth_user_id' => $user->oauth_user_id, - 'oauth_provider_id' => $user->oauth_provider_id, 'signature' => $user->signature, ]; } diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index e50770efea4a..ebfb9c045469 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -79,6 +79,7 @@ class CreateUsersTable extends Migration Schema::create('gateways', function ($table) { $table->increments('id'); $table->string('name')->default(''); + $table->string('key')->unique(); $table->string('provider')->default(''); $table->boolean('visible')->default(true); $table->timestamps(); @@ -145,7 +146,9 @@ class CreateUsersTable extends Migration $table->string('vat_number')->default(''); $table->string('id_number')->default(''); $table->unsignedInteger('size_id')->nullable(); - + $table->string('start_of_week')->default(''); + $table->string('financial_year_start')->default(''); + $table->smallInteger('enable_modules')->default(0); $table->text('settings'); $table->timestamps(6); @@ -349,7 +352,7 @@ class CreateUsersTable extends Migration $table->increments('id'); $table->unsignedInteger('company_id'); $table->unsignedInteger('user_id'); - $table->unsignedInteger('gateway_id'); + $table->string('gateway_key'); $table->unsignedInteger('accepted_credit_cards'); $table->boolean('require_cvv')->default(true); $table->boolean('show_address')->default(true)->nullable(); @@ -374,7 +377,7 @@ class CreateUsersTable extends Migration $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); - $table->foreign('gateway_id')->references('id')->on('gateways'); + $table->foreign('gateway_key')->references('key')->on('gateways'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); diff --git a/database/seeds/PaymentLibrariesSeeder.php b/database/seeds/PaymentLibrariesSeeder.php index cceedf3ac970..b4e1af925b62 100644 --- a/database/seeds/PaymentLibrariesSeeder.php +++ b/database/seeds/PaymentLibrariesSeeder.php @@ -10,63 +10,63 @@ class PaymentLibrariesSeeder extends Seeder Eloquent::unguard(); $gateways = [ - ['name' => 'Authorize.Net AIM', 'provider' => 'AuthorizeNet_AIM', 'sort_order' => 5], - ['name' => 'CardSave', 'provider' => 'CardSave'], - ['name' => 'Eway Rapid', 'provider' => 'Eway_RapidShared', 'is_offsite' => true], - ['name' => 'FirstData Connect', 'provider' => 'FirstData_Connect'], - ['name' => 'Migs ThreeParty', 'provider' => 'Migs_ThreeParty'], - ['name' => 'Migs TwoParty', 'provider' => 'Migs_TwoParty'], - ['name' => 'Mollie', 'provider' => 'Mollie', 'is_offsite' => true, 'sort_order' => 8], - ['name' => 'MultiSafepay', 'provider' => 'MultiSafepay'], - ['name' => 'Netaxept', 'provider' => 'Netaxept'], - ['name' => 'NetBanx', 'provider' => 'NetBanx'], - ['name' => 'PayFast', 'provider' => 'PayFast', 'is_offsite' => true], - ['name' => 'Payflow Pro', 'provider' => 'Payflow_Pro'], - ['name' => 'PaymentExpress PxPay', 'provider' => 'PaymentExpress_PxPay'], - ['name' => 'PaymentExpress PxPost', 'provider' => 'PaymentExpress_PxPost'], - ['name' => 'PayPal Express', 'provider' => 'PayPal_Express', 'is_offsite' => true, 'sort_order' => 4], - ['name' => 'PayPal Pro', 'provider' => 'PayPal_Pro'], - ['name' => 'Pin', 'provider' => 'Pin'], - ['name' => 'SagePay Direct', 'provider' => 'SagePay_Direct'], - ['name' => 'SecurePay DirectPost', 'provider' => 'SecurePay_DirectPost'], - ['name' => 'Stripe', 'provider' => 'Stripe', 'sort_order' => 1], - ['name' => 'TargetPay Direct eBanking', 'provider' => 'TargetPay_Directebanking'], - ['name' => 'TargetPay Ideal', 'provider' => 'TargetPay_Ideal'], - ['name' => 'TargetPay Mr Cash', 'provider' => 'TargetPay_Mrcash'], - ['name' => 'TwoCheckout', 'provider' => 'TwoCheckout', 'is_offsite' => true], - ['name' => 'WorldPay', 'provider' => 'WorldPay'], - ['name' => 'moolah', 'provider' => 'AuthorizeNet_AIM'], - ['name' => 'Alipay', 'provider' => 'Alipay_Express'], - ['name' => 'Buckaroo', 'provider' => 'Buckaroo_CreditCard'], - ['name' => 'Coinbase', 'provider' => 'Coinbase', 'is_offsite' => true], - ['name' => 'DataCash', 'provider' => 'DataCash'], - ['name' => 'Pacnet', 'provider' => 'Pacnet'], - ['name' => 'Realex', 'provider' => 'Realex_Remote'], - ['name' => 'Sisow', 'provider' => 'Sisow'], - ['name' => 'Skrill', 'provider' => 'Skrill', 'is_offsite' => true], - ['name' => 'BitPay', 'provider' => 'BitPay', 'is_offsite' => true, 'sort_order' => 7], - ['name' => 'AGMS', 'provider' => 'Agms'], - ['name' => 'Barclays', 'provider' => 'BarclaysEpdq\Essential'], - ['name' => 'Cardgate', 'provider' => 'Cardgate'], - ['name' => 'Checkout.com', 'provider' => 'CheckoutCom'], - ['name' => 'Creditcall', 'provider' => 'Creditcall'], - ['name' => 'Cybersource', 'provider' => 'Cybersource'], - ['name' => 'ecoPayz', 'provider' => 'Ecopayz'], - ['name' => 'Fasapay', 'provider' => 'Fasapay'], - ['name' => 'Komoju', 'provider' => 'Komoju'], - ['name' => 'Paysafecard', 'provider' => 'Paysafecard'], - ['name' => 'Paytrace', 'provider' => 'Paytrace_CreditCard'], - ['name' => 'Secure Trading', 'provider' => 'SecureTrading'], - ['name' => 'SecPay', 'provider' => 'SecPay'], - ['name' => 'WePay', 'provider' => 'WePay', 'is_offsite' => false, 'sort_order' => 3], - ['name' => 'Braintree', 'provider' => 'Braintree', 'sort_order' => 3], - ['name' => 'Custom', 'provider' => 'Custom1', 'is_offsite' => true, 'sort_order' => 20], - ['name' => 'FirstData Payeezy', 'provider' => 'FirstData_Payeezy'], - ['name' => 'GoCardless', 'provider' => 'GoCardlessV2\Redirect', 'sort_order' => 9, 'is_offsite' => true], - ['name' => 'PagSeguro', 'provider' => 'PagSeguro'], - ['name' => 'PAYMILL', 'provider' => 'Paymill'], - ['name' => 'Custom', 'provider' => 'Custom2', 'is_offsite' => true, 'sort_order' => 21], - ['name' => 'Custom', 'provider' => 'Custom3', 'is_offsite' => true, 'sort_order' => 22], + ['name' => 'Authorize.Net AIM', 'provider' => 'AuthorizeNet_AIM', 'sort_order' => 5, 'key' => '3b6621f970ab18887c4f6dca78d3f8bb'], + ['name' => 'CardSave', 'provider' => 'CardSave', 'key' => '46c5c1fed2c43acf4f379bae9c8b9f76'], + ['name' => 'Eway Rapid', 'provider' => 'Eway_RapidShared', 'is_offsite' => true, 'key' => '944c20175bbe6b9972c05bcfe294c2c7'], + ['name' => 'FirstData Connect', 'provider' => 'FirstData_Connect', 'key' => '4e0ed0d34552e6cb433506d1ac03a418'], + ['name' => 'Migs ThreeParty', 'provider' => 'Migs_ThreeParty', 'key' => '513cdc81444c87c4b07258bc2858d3fa'], + ['name' => 'Migs TwoParty', 'provider' => 'Migs_TwoParty', 'key' => '99c2a271b5088951334d1302e038c01a'], + ['name' => 'Mollie', 'provider' => 'Mollie', 'is_offsite' => true, 'sort_order' => 8, 'key' => '1bd651fb213ca0c9d66ae3c336dc77e8'], + ['name' => 'MultiSafepay', 'provider' => 'MultiSafepay', 'key' => 'c3dec814e14cbd7d86abd92ce6789f8c'], + ['name' => 'Netaxept', 'provider' => 'Netaxept', 'key' => '070dffc5ca94f4e66216e44028ebd52d'], + ['name' => 'NetBanx', 'provider' => 'NetBanx', 'key' => '334d419939c06bd99b4dfd8a49243f0f'], + ['name' => 'PayFast', 'provider' => 'PayFast', 'is_offsite' => true, 'key' => 'd6814fc83f45d2935e7777071e629ef9'], + ['name' => 'Payflow Pro', 'provider' => 'Payflow_Pro', 'key' => '0d97c97d227f91c5d0cb86d01e4a52c9'], + ['name' => 'PaymentExpress PxPay', 'provider' => 'PaymentExpress_PxPay', 'key' => 'a66b7062f4c8212d2c428209a34aa6bf'], + ['name' => 'PaymentExpress PxPost', 'provider' => 'PaymentExpress_PxPost', 'key' => '7e6fc08b89467518a5953a4839f8baba'], + ['name' => 'PayPal Express', 'provider' => 'PayPal_Express', 'is_offsite' => true, 'sort_order' => 4, 'key' => '38f2c48af60c7dd69e04248cbb24c36e'], + ['name' => 'PayPal Pro', 'provider' => 'PayPal_Pro', 'key' => '80af24a6a69f5c0bbec33e930ab40665'], + ['name' => 'Pin', 'provider' => 'Pin', 'key' => '0749cb92a6b36c88bd9ff8aabd2efcab'], + ['name' => 'SagePay Direct', 'provider' => 'SagePay_Direct', 'key' => '4c8f4e5d0f353a122045eb9a60cc0f2d'], + ['name' => 'SecurePay DirectPost', 'provider' => 'SecurePay_DirectPost', 'key' => '8036a5aadb2bdaafb23502da8790b6a2'], + ['name' => 'Stripe', 'provider' => 'Stripe', 'sort_order' => 1, 'key' => 'd14dd26a37cecc30fdd65700bfb55b23'], + ['name' => 'TargetPay Direct eBanking', 'provider' => 'TargetPay_Directebanking', 'key' => 'd14dd26a37cdcc30fdd65700bfb55b23'], + ['name' => 'TargetPay Ideal', 'provider' => 'TargetPay_Ideal', 'key' => 'ea3b328bd72d381387281c3bd83bd97c'], + ['name' => 'TargetPay Mr Cash', 'provider' => 'TargetPay_Mrcash', 'key' => 'a0035fc0d87c4950fb82c73e2fcb825a'], + ['name' => 'TwoCheckout', 'provider' => 'TwoCheckout', 'is_offsite' => true, 'key' => '16dc1d3c8a865425421f64463faaf768'], + ['name' => 'WorldPay', 'provider' => 'WorldPay', 'key' => '43e639234f660d581ddac725ba7bcd29'], + ['name' => 'moolah', 'provider' => 'AuthorizeNet_AIM', 'key' => '2f71dc17b0158ac30a7ae0839799e888'], + ['name' => 'Alipay', 'provider' => 'Alipay_Express', 'key' => '733998ee4760b10f11fb48652571e02c'], + ['name' => 'Buckaroo', 'provider' => 'Buckaroo_CreditCard', 'key' => '6312879223e49c5cf92e194646bdee8f'], + ['name' => 'Coinbase', 'provider' => 'Coinbase', 'is_offsite' => true, 'key' => '106ef7e7da9062b0df363903b455711c'], + ['name' => 'DataCash', 'provider' => 'DataCash', 'key' => 'e9a38f0896b5b82d196be3b7020c8664'], + ['name' => 'Pacnet', 'provider' => 'Pacnet', 'key' => '0da4e18ed44a5bd5c8ec354d0ab7b301'], + ['name' => 'Realex', 'provider' => 'Realex_Remote', 'key' => 'd3979e62eb603fbdf1c78fe3a8ba7009'], + ['name' => 'Sisow', 'provider' => 'Sisow', 'key' => '557d98977e7ec02dfa53de4b69b335be'], + ['name' => 'Skrill', 'provider' => 'Skrill', 'is_offsite' => true, 'key' => '54dc60c869a7322d87efbec5c0c25805'], + ['name' => 'BitPay', 'provider' => 'BitPay', 'is_offsite' => true, 'sort_order' => 7, 'key' => 'e4a02f0a4b235eb5e9e294730703bb74'], + ['name' => 'AGMS', 'provider' => 'Agms', 'key' => '1b3c6f3ccfea4f5e7eadeae188cccd7f'], + ['name' => 'Barclays', 'provider' => 'BarclaysEpdq\Essential', 'key' => '7cba6ce5c125f9cb47ea8443ae671b68'], + ['name' => 'Cardgate', 'provider' => 'Cardgate', 'key' => 'b98cfa5f750e16cee3524b7b7e78fbf6'], + ['name' => 'Checkout.com', 'provider' => 'CheckoutCom', 'key' => '3758e7f7c6f4cecf0f4f348b9a00f456'], + ['name' => 'Creditcall', 'provider' => 'Creditcall', 'key' => 'cbc7ef7c99d31ec05492fbcb37208263'], + ['name' => 'Cybersource', 'provider' => 'Cybersource', 'key' => 'e186a98d3b079028a73390bdc11bdb82'], + ['name' => 'ecoPayz', 'provider' => 'Ecopayz', 'key' => '761040aca40f685d1ab55e2084b30670'], + ['name' => 'Fasapay', 'provider' => 'Fasapay', 'key' => '1b2cef0e8c800204a29f33953aaf3360'], + ['name' => 'Komoju', 'provider' => 'Komoju', 'key' => '7ea2d40ecb1eb69ef8c3d03e5019028a'], + ['name' => 'Paysafecard', 'provider' => 'Paysafecard', 'key' => '70ab90cd6c5c1ab13208b3cef51c0894'], + ['name' => 'Paytrace', 'provider' => 'Paytrace_CreditCard', 'key' => 'bbd736b3254b0aabed6ad7fda1298c88'], + ['name' => 'Secure Trading', 'provider' => 'SecureTrading', 'key' => '231cb401487b9f15babe04b1ac4f7a27'], + ['name' => 'SecPay', 'provider' => 'SecPay', 'key' => 'bad8699d581d9fa040e59c0bb721a76c'], + ['name' => 'WePay', 'provider' => 'WePay', 'is_offsite' => false, 'sort_order' => 3, 'key' => '8fdeed552015b3c7b44ed6c8ebd9e992'], + ['name' => 'Braintree', 'provider' => 'Braintree', 'sort_order' => 3, 'key' => 'f7ec488676d310683fb51802d076d713'], + ['name' => 'Custom', 'provider' => 'Custom1', 'is_offsite' => true, 'sort_order' => 20, 'key' => 'ff0847592555bb2fdb429984e3de4147'], + ['name' => 'FirstData Payeezy', 'provider' => 'FirstData_Payeezy', 'key' => '30334a52fb698046572c627ca10412e8'], + ['name' => 'GoCardless', 'provider' => 'GoCardlessV2\Redirect', 'sort_order' => 9, 'is_offsite' => true, 'key' => 'b9886f9257f0c6ee7c302f1c74475f6c'], + ['name' => 'PagSeguro', 'provider' => 'PagSeguro', 'key' => 'ef498756b54db63c143af0ec433da803'], + ['name' => 'PAYMILL', 'provider' => 'Paymill', 'key' => 'ca52f618a39367a4c944098ebf977e1c'], + ['name' => 'Custom', 'provider' => 'Custom2', 'is_offsite' => true, 'sort_order' => 21, 'key' => '54faab2ab6e3223dbe848b1686490baa'], + ['name' => 'Custom', 'provider' => 'Custom3', 'is_offsite' => true, 'sort_order' => 22, 'key' => '8149a02d9e691a78da2664d0ce9ce1a9'], ]; foreach ($gateways as $gateway) { @@ -80,5 +80,6 @@ class PaymentLibrariesSeeder extends Seeder Gateway::create($gateway); } } + } } diff --git a/database/seeds/RandomDataSeeder.php b/database/seeds/RandomDataSeeder.php index 96ec17a5ddc1..1bd22be6ac6b 100644 --- a/database/seeds/RandomDataSeeder.php +++ b/database/seeds/RandomDataSeeder.php @@ -153,7 +153,7 @@ class RandomDataSeeder extends Seeder $cg = new CompanyGateway; $cg->company_id = $company->id; $cg->user_id = $user->id; - $cg->gateway_id = 20; + $cg->gateway_key = 'd14dd26a37cecc30fdd65700bfb55b23'; $cg->require_cvv = true; $cg->show_address = true; $cg->show_shipping_address = true; @@ -165,7 +165,7 @@ class RandomDataSeeder extends Seeder $cg = new CompanyGateway; $cg->company_id = $company->id; $cg->user_id = $user->id; - $cg->gateway_id = 20; + $cg->gateway_key = 'd14dd26a37cecc30fdd65700bfb55b23'; $cg->require_cvv = true; $cg->show_address = true; $cg->show_shipping_address = true; diff --git a/tests/MockAccountData.php b/tests/MockAccountData.php index da28a24722a9..2c20009bceb9 100644 --- a/tests/MockAccountData.php +++ b/tests/MockAccountData.php @@ -178,7 +178,7 @@ trait MockAccountData $cg = new CompanyGateway; $cg->company_id = $this->company->id; $cg->user_id = $this->user->id; - $cg->gateway_id = 20; + $cg->gateway_key = 'd14dd26a37cecc30fdd65700bfb55b23'; $cg->require_cvv = true; $cg->show_address = true; $cg->show_shipping_address = true; @@ -191,7 +191,7 @@ trait MockAccountData $cg = new CompanyGateway; $cg->company_id = $this->company->id; $cg->user_id = $this->user->id; - $cg->gateway_id = 20; + $cg->gateway_key = 'd14dd26a37cecc30fdd65700bfb55b23'; $cg->require_cvv = true; $cg->show_address = true; $cg->show_shipping_address = true;