HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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);
    }
}