setup wizard refactoring

This commit is contained in:
Čarodej
2022-02-09 14:04:51 +01:00
parent a9e4daed35
commit a6940379cb
34 changed files with 548 additions and 1856 deletions

View File

@@ -16,6 +16,18 @@ class StoreAppSettingsController extends Controller
StoreAppSetupRequest $request
): Response {
collect([
[
'name' => 'subscription_type',
'value' => $request->input('subscriptionType'),
],
[
'name' => 'user_verification',
'value' => $request->input('userVerification'),
],
[
'name' => 'app_color',
'value' => $request->input('color'),
],
[
'name' => 'app_title',
'value' => $request->input('title'),

View File

@@ -1,64 +0,0 @@
<?php
namespace Domain\SetupWizard\Controllers;
use Artisan;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
use Domain\SetupWizard\Requests\StoreStripeBillingRequest;
class StoreBillingsController extends Controller
{
/**
* Store Stripe billings
*/
public function __invoke(
StoreStripeBillingRequest $request
): Response {
collect([
[
'name' => 'billing_phone_number',
'value' => $request->input('billing_phone_number'),
],
[
'name' => 'billing_postal_code',
'value' => $request->input('billing_postal_code'),
],
[
'name' => 'billing_vat_number',
'value' => $request->input('billing_vat_number'),
],
[
'name' => 'billing_address',
'value' => $request->input('billing_address'),
],
[
'name' => 'billing_country',
'value' => $request->input('billing_country'),
],
[
'name' => 'billing_state',
'value' => $request->input('billing_state'),
],
[
'name' => 'billing_city',
'value' => $request->input('billing_city'),
],
[
'name' => 'billing_name',
'value' => $request->input('billing_name'),
],
])->each(function ($col) {
Setting::forceCreate([
'name' => $col['name'],
'value' => $col['value'],
]);
});
if (! app()->runningUnitTests()) {
Artisan::call('config:cache');
}
return response('Done', 204);
}
}

View File

@@ -1,22 +0,0 @@
<?php
namespace Domain\SetupWizard\Controllers;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Domain\SetupWizard\Requests\StoreStripePlansRequest;
/**
* Create Stripe subscription plan
*/
class StorePlansController extends Controller
{
public function __invoke(
StoreStripePlansRequest $request
): Response {
foreach ($request->input('plans') as $plan) {
$this->stripe->createPlan($plan);
}
return response('Done', 204);
}
}

View File

@@ -1,69 +0,0 @@
<?php
namespace Domain\SetupWizard\Controllers;
use Stripe;
use Artisan;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
use Cartalyst\Stripe\Exception\UnauthorizedException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Domain\SetupWizard\Requests\StoreStripeCredentialsRequest;
class StoreSubscriptionServiceCredentialsController extends Controller
{
/**
* Store and test stripe credentials
*/
public function __invoke(
StoreStripeCredentialsRequest $request
): Response {
if (! app()->runningUnitTests()) {
// Create stripe instance
$stripe = Stripe::make($request->input('secret'), '2020-03-02');
try {
// Try to get stripe account details
$stripe->account()->details();
} catch (UnauthorizedException $e) {
throw new HttpException(401, $e->getMessage());
}
}
// Set settings
collect([
[
'name' => 'stripe_currency',
'value' => $request->input('currency'),
],
[
'name' => 'payments_configured',
'value' => 1,
],
[
'name' => 'payments_active',
'value' => 1,
],
])->each(function ($col) {
Setting::forceCreate([
'name' => $col['name'],
'value' => $col['value'],
]);
});
if (! app()->runningUnitTests()) {
// Set stripe credentials to .env
setEnvironmentValue([
'CASHIER_CURRENCY' => $request->input('currency'),
'STRIPE_KEY' => $request->input('key'),
'STRIPE_SECRET' => $request->input('secret'),
'STRIPE_WEBHOOK_SECRET' => $request->input('webhookSecret'),
]);
// Clear cache
Artisan::call('config:cache');
}
return response('Done', 204);
}
}