added it_get_setup_intent, it_upgrade_plan, it_cancel_subscription test

This commit is contained in:
Peter Papp
2021-03-04 12:48:51 +01:00
parent b1c15bb6a7
commit 69b72d24a9
15 changed files with 253 additions and 86 deletions
@@ -7,6 +7,7 @@ use App\Http\Requests\Subscription\StoreUpgradeAccountRequest;
use App\Http\Resources\UserSubscription;
use App\Http\Tools\Demo;
use App\Invoice;
use App\Models\User;
use App\Services\StripeService;
use Auth;
use Cartalyst\Stripe\Exception\CardErrorException;
@@ -14,6 +15,7 @@ use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Laravel\Cashier\Exceptions\IncompletePayment;
use Laravel\Cashier\Subscription;
use Symfony\Component\HttpKernel\Exception\HttpException;
class SubscriptionController extends Controller
@@ -34,11 +36,12 @@ class SubscriptionController extends Controller
*
* @return \Stripe\SetupIntent
*/
public function stripe_setup_intent()
public function setup_intent()
{
$user = Auth::user();
return $this->stripe->getSetupIntent($user);
return $this->stripe
->getSetupIntent(
Auth::user()
);
}
/**
@@ -50,7 +53,7 @@ class SubscriptionController extends Controller
{
$user = Auth::user();
if (! $user->subscription('main')) {
if (!$user->subscription('main')) {
return abort(204, 'User don\'t have any subscription');
}
@@ -113,7 +116,7 @@ class SubscriptionController extends Controller
*/
public function cancel()
{
$user = Auth::user();
$user = User::find(Auth::id());
// Check if is demo
if (is_demo($user->id)) {
+18 -10
View File
@@ -3,9 +3,8 @@
namespace App\Http\Controllers;
use App\Services\StripeService;
use App\Setting;
use App\User;
use Illuminate\Http\Request;
use App\Models\Setting;
use App\Models\User;
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
@@ -33,13 +32,19 @@ class WebhookController extends CashierController
}
// Get user
$user = User::where('stripe_id', $payload['data']['object']['customer'])->firstOrFail();
$user = User::where('stripe_id', $payload['data']['object']['customer'])
->firstOrFail();
// Get default storage capacity
$default_storage = Setting::where('name', 'storage_default')->first();
$default_storage = Setting::where('name', 'storage_default')
->first();
// Update storage capacity
$user->settings()->update(['storage_capacity' => $default_storage->value]);
$user
->settings()
->update([
'storage_capacity' => $default_storage->value
]);
return $this->successMethod();
}
@@ -53,15 +58,18 @@ class WebhookController extends CashierController
public function handleInvoicePaymentSucceeded($payload)
{
// Get user
$user = User::where('stripe_id', $payload['data']['object']['customer'])->firstOrFail();
$user = User::where('stripe_id', $payload['data']['object']['customer'])
->firstOrFail();
// Get requested plan
$plan = $this->stripe->getPlan($user->subscription('main')->stripe_plan);
// Update user storage limit
$user->settings()->update([
'storage_capacity' => $plan['product']['metadata']['capacity']
]);
$user
->settings()
->update([
'storage_capacity' => $plan['product']['metadata']['capacity']
]);
return $this->successMethod();
}