v1.7 beta.1

This commit is contained in:
carodej
2020-07-16 10:26:41 +02:00
parent 6b36480097
commit eeada5468b
36 changed files with 923 additions and 42 deletions

View File

@@ -33,6 +33,7 @@ class SetupWizardController extends Controller
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
$this->setup_done = Setting::where('name', 'setup_wizard_success')->first();
}
/**
@@ -43,6 +44,9 @@ class SetupWizardController extends Controller
*/
public function verify_purchase_code(Request $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
// Verify purchase code
$response = Http::get('https://verify.vuefilemanager.com/api/verify-code/' . $request->purchaseCode);
@@ -61,6 +65,9 @@ class SetupWizardController extends Controller
*/
public function setup_database(StoreDatabaseCredentialsRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
try {
// Set temporary database connection
config(['database.connections.test.driver' => $request->connection]);
@@ -133,6 +140,9 @@ class SetupWizardController extends Controller
*/
public function store_stripe_credentials(StoreStripeCredentialsRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
// Create stripe instance
$stripe = Stripe::make($request->secret, '2020-03-02');
@@ -184,6 +194,9 @@ class SetupWizardController extends Controller
*/
public function store_stripe_billings(StoreStripeBillingRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
// Get options
$settings = collect([
[
@@ -239,6 +252,9 @@ class SetupWizardController extends Controller
*/
public function store_stripe_plans(StoreStripePlansRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
foreach ($request->input('plans') as $plan) {
$this->stripe->createPlan($plan);
}
@@ -252,6 +268,9 @@ class SetupWizardController extends Controller
*/
public function store_environment_setup(StoreEnvironmentSetupRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
$storage_driver = $request->input('storage.driver');
if ($storage_driver === 'local') {
@@ -435,6 +454,9 @@ class SetupWizardController extends Controller
*/
public function store_app_settings(StoreAppSetupRequest $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
// Store Logo
if ($request->hasFile('logo')) {
$logo = store_system_image($request->file('logo'), 'system');
@@ -510,6 +532,9 @@ class SetupWizardController extends Controller
*/
public function create_admin_account(Request $request)
{
// Check setup status
if ($this->setup_done) abort(410, 'Gone');
// Validate request
$request->validate([
'email' => 'required|string|email|unique:users',
@@ -563,8 +588,14 @@ class SetupWizardController extends Controller
// Create legal pages and index content
if ($request->license === 'Extended') {
Artisan::call('db:seed --class=PageSeeder');
Artisan::call('db:seed --class=ContentSeeder');
Artisan::call('db:seed --class=PageSeeder', [
'--force' => true
]);
Artisan::call('db:seed --class=ContentSeeder', [
'--force' => true
]);
}
// Retrieve access token
@@ -590,7 +621,9 @@ class SetupWizardController extends Controller
Artisan::call('key:generate');
// Migrate database
Artisan::call('migrate:fresh');
Artisan::call('migrate:fresh', [
'--force' => true
]);
// Create Passport Keys
Artisan::call('passport:keys', [

View File

@@ -23,8 +23,14 @@ class UpgradeAppController extends Controller
// Create legal pages and index content
if ($request->license === 'Extended') {
Artisan::call('db:seed --class=PageSeeder');
Artisan::call('db:seed --class=ContentSeeder');
Artisan::call('db:seed --class=PageSeeder', [
'--force' => true
]);
Artisan::call('db:seed --class=ContentSeeder', [
'--force' => true
]);
}
// Store Logo

View File

@@ -3,10 +3,12 @@
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\Payments\RegisterNewPaymentMethodRequest;
use App\Http\Resources\PaymentCardCollection;
use App\Http\Resources\PaymentCardResource;
use App\Http\Resources\PaymentDefaultCardResource;
use App\Http\Tools\Demo;
use App\Services\StripeService;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
@@ -14,6 +16,14 @@ use Laravel\Cashier\PaymentMethod;
class PaymentMethodsController extends Controller
{
/**
* PaymentMethodsController constructor.
*/
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
}
/**
* Get user payment methods grouped by default and others
*
@@ -23,7 +33,7 @@ class PaymentMethodsController extends Controller
{
$user = Auth::user();
if (! $user->hasPaymentMethod()) {
if (!$user->hasPaymentMethod()) {
return abort(204, 'User don\'t have any payment methods');
}
@@ -61,7 +71,7 @@ class PaymentMethodsController extends Controller
});
}
if (! $user->card_brand || ! $user->stripe_id || is_null($paymentMethodsMapped) && is_null($paymentMethodsMapped)) {
if (!$user->card_brand || !$user->stripe_id || is_null($paymentMethodsMapped) && is_null($paymentMethodsMapped)) {
return [
'default' => null,
'others' => [],
@@ -81,8 +91,9 @@ class PaymentMethodsController extends Controller
*
* @param Request $request
* @param $id
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function update(Request $request, $id)
public function update($id)
{
$user = Auth::user();
@@ -106,6 +117,23 @@ class PaymentMethodsController extends Controller
return response('Done', 204);
}
/**
* Register new payment method for user
*
* @param Request $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function store(RegisterNewPaymentMethodRequest $request)
{
// Get user
$user = Auth::user();
// Register new payment method
$this->stripe->registerNewPaymentMethod($request, $user);
return response('Done', 201);
}
/**
* Delete user payment method
*

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Laravel\Cashier\Payment;
class ConfirmPayment extends Notification implements ShouldQueue
{
use Queueable;
/**
* The PaymentIntent identifier.
*
* @var string
*/
public $paymentId;
/**
* The payment amount.
*
* @var string
*/
public $amount;
/**
* Create a new payment confirmation notification.
*
* @param \Laravel\Cashier\Payment $payment
* @return void
*/
public function __construct(Payment $payment)
{
$this->paymentId = $payment->id;
$this->amount = $payment->amount();
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = route('cashier.payment', ['id' => $this->paymentId]);
return (new MailMessage)
->subject(__('cashier.confirm_payment'))
->greeting(__('cashier.confirm_amount', ['amount' => $this->amount]))
->line(__('cashier.confirm_description'))
->action(__('cashier.confirm_button'), $url);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests\Payments;
use Illuminate\Foundation\Http\FormRequest;
class RegisterNewPaymentMethodRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'token' => 'required|string',
'default' => 'required|boolean'
];
}
}