Refactors for gateways - using keys instead of Pkeys

This commit is contained in:
David Bomba 2019-09-24 21:22:41 +10:00
parent 8b44affe6d
commit f59b74b01b
9 changed files with 73 additions and 86 deletions

View File

@ -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',

View File

@ -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);
}

View File

@ -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)

View File

@ -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',

View File

@ -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,
];
}

View File

@ -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');
});

View File

@ -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);
}
}
}
}

View File

@ -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;

View File

@ -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;