Initial Spark Install

This commit is contained in:
Deon George
2017-11-03 16:26:07 +11:00
commit b1a5807eb3
766 changed files with 128896 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
<?php
namespace Laravel\Spark\Http\Controllers\Settings\Subscription;
use Laravel\Spark\Spark;
use Illuminate\Http\Request;
use Laravel\Spark\Http\Controllers\Controller;
use Laravel\Spark\Contracts\Interactions\Subscribe;
use Laravel\Spark\Events\Subscription\SubscriptionUpdated;
use Laravel\Spark\Events\Subscription\SubscriptionCancelled;
use Laravel\Spark\Http\Requests\Settings\Subscription\UpdateSubscriptionRequest;
use Laravel\Spark\Contracts\Http\Requests\Settings\Subscription\CreateSubscriptionRequest;
class PlanController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Create the subscription for the user.
*
* @param CreateSubscriptionRequest $request
* @return Response
*/
public function store(CreateSubscriptionRequest $request)
{
$plan = Spark::plans()->where('id', $request->plan)->first();
Spark::interact(Subscribe::class, [
$request->user(), $plan, false, $request->all()
]);
}
/**
* Update the subscription for the user.
*
* @param \Laravel\Spark\Http\Requests\Settings\Subscription\UpdateSubscriptionRequest $request
* @return Response
*/
public function update(UpdateSubscriptionRequest $request)
{
$plan = Spark::plans()->where('id', $request->plan)->first();
// This method is used both for updating subscriptions and for resuming cancelled
// subscriptions that are still within their grace periods as this swap method
// will be used for either of these situations without causing any problems.
if ($plan->price === 0) {
return $this->destroy($request);
} else {
$subscription = $request->user()->subscription();
if (Spark::prorates()) {
$subscription->swap($request->plan);
} else {
$subscription->noProrate()->swap($request->plan);
}
}
event(new SubscriptionUpdated(
$request->user()->fresh()
));
}
/**
* Cancel the user's subscription.
*
* @param Request $request
* @return Response
*/
public function destroy(Request $request)
{
$request->user()->subscription()->cancel();
event(new SubscriptionCancelled($request->user()->fresh()));
}
}