*/ class SubscriptionsController extends Controller { private $repo; public function __construct(SubscriptionsRepository $repo) { $this->repo = $repo; } public function index(Request $request) { $subscriptions = $this->repo->getSubscriptions( $request->get('q'), $request->get('vendor_id') ); return view('subscriptions.index', compact('subscriptions')); } public function create() { $projects = $this->repo->getProjectsList(); $vendors = $this->repo->getVendorsList(); return view('subscriptions.create', compact('projects', 'vendors')); } public function store(FormRequest $subscriptionCreateRequest) { $subscriptionCreateRequest->approveFor(new Subscription()); flash(trans('subscription.created'), 'success'); return redirect()->route('subscriptions.index'); } public function show(Subscription $subscription) { $pageTitle = $this->getPageTitle('detail', $subscription); return view('subscriptions.show', compact('subscription', 'pageTitle')); } public function edit(Subscription $subscription) { $projects = $this->repo->getProjectsList(); $vendors = $this->repo->getVendorsList(); $pageTitle = $this->getPageTitle('edit', $subscription); return view('subscriptions.edit', compact('subscription', 'projects', 'vendors', 'pageTitle')); } public function update(FormRequest $subscriptionUpdateRequest, Subscription $subscription) { $subscriptionUpdateRequest->approveFor($subscription); flash(trans('subscription.updated'), 'success'); return redirect()->route('subscriptions.edit', $subscription->id); } public function destroy(FormRequest $subscriptionDeleteRequest, Subscription $subscription) { $subscriptionDeleteRequest->approveToDelete($subscription); flash(trans('subscription.deleted'), 'success'); return redirect()->route('subscriptions.index'); } private function getSubscriptionTypes() { return Type::toArray(); } private function getPageTitle($pageType, $subscription) { return trans('subscription.'.$pageType).' - '.$subscription->name.' - '.$subscription->customer->name; } }