File: D:/HostingSpaces/SBogers10/wingssprayer.komma.pro/app/Forms/RequestBrochureController.php
<?php
/**
* Created by PhpStorm.
* User: mike
* Date: 26/09/17
* Time: 15:24
*/
namespace App\Forms;
use App\Base\Controller;
use App\Http\Requests\RequestBrochureRequest;
use App\Mail\RequestBrochureByEmail;
use App\Mail\RequestBrochureByMail;
use App\Pages\PageController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage;
final class RequestBrochureController extends Controller
{
/**
* @var FormService
*/
private $formService;
/**
* RequestBrochureController constructor.
* @param FormService $formService
*/
public function __construct(FormService $formService)
{
parent::__construct();
$this->formService = $formService;
$this->formService->setOrigin('plan_demo');
}
/**
* Store the request and send it by e-mail
* Note: Validation is done in the request itself
*
* @param RequestBrochureRequest $request
* @return \Illuminate\Http\JsonResponse
*/
public function process(RequestBrochureRequest $request)
{
// Store request in the database
$this->formService->storeRequest($request);
// Remove token from request (this creates and array)
if(Request()->has('sendWithEmail')){
$request = $request->except('_token', 'sendWithEmail');
$mail = new RequestBrochureByEmail($request);
$documentPath = storage_path('app'.DIRECTORY_SEPARATOR.'documents'.DIRECTORY_SEPARATOR.'wingssprayer_brochure.pdf');
$mail->attach($documentPath);
Mail::send($mail);
} else {
$request = $request->except('_token', 'sendWithMail');
$mail = new RequestBrochureByMail($request);
Mail::send($mail);
}
// Redirect to the success page
return redirect(localized_route('request_brochure.success'));
}
/**
* Show page where we thank the user
*
* @return mixed
*/
public function success()
{
$pageController = new PageController();
return $pageController->show($this->links->request_brochure->node)->with('send', true);
}
public function redirect(Request $request)
{
$email = $request->get('email');
return response()->redirectTo($this->links->request_brochure->route.'?email='.$email);
}
}