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/SBogers96/smilefotografie.nl/app/Komma/Forms/FormController.php
<?php


namespace Komma\Forms;


use Komma\Core\MetaDataService;
use Komma\Mailers\FormMailer;
use Komma\Pages\PageController;
use Komma\Pages\PageRepository;
use Komma\Albums\AlbumService;

class FormController extends PageController
{
    /**
     * @var FormService
     */
    private $formService;
    /**
     * @var FormMailer
     */
    private $formMailer;

    public function __construct(
        PageRepository $repository,
        MetaDataService $metaDataService,
        FormService $formService,
        FormMailer $formMailer)
    {
        parent::__construct($repository, $metaDataService);

        $this->formService = $formService;
        $this->formMailer = $formMailer;
    }

    /**
     * Show page with form
     *
     * @param \StdClass $page
     * @return mixed
     */
    public function showPage(\StdClass $page)
    {
        // Check for success
        if( ! $this->formService->validAttempt()) return \Redirect::to('/' . $page->route);

        // Check for negative page-view
        is_negative($page->code_name) ? $negative = 'negative' : $negative = '';

        // Get form data
        $this->formService->setFormName($page->code_name);
        $data = $this->formService->fromSession();

        // Meta data
        $meta = $this->metaDataService->get($page);

        // Return view
        return \View::make('layouts.pages.' . $page->code_name)
            ->with([
                'page' => $page,
                'data' => $data,
                'bodyClass' => $page->code_name,
                'negative' => $negative,
                'meta' => $meta
            ]);
    }

    /**
     * Process offer
     */
    public function process()
    {
        $request = \Request::all();

        // Get route
        $route = $request['route'];
        unset($request['route']);

        if (isset($request['honey']) && $request['honey'] != '') {
            return \Redirect::to('/' . $route)->withInput();
        }

        // Set form name
        $this->formService->setFormName($request['formName']);

        // Save request in session
        $this->formService->saveInSession($request);

        // Validate request
        if( ! $data = $this->formService->isValid($request))
            return \Redirect::to('/' . $route . '?status=failed')->withErrors($this->formService->errors());

        // Send mail
        $data = $this->formService->data($request);
        $config = $this->formService->config();
        //$this->formMailer->reservationToClient($data,$config);
        $this->formMailer->reservationToAdmin($data,$config);

        // Set session
        \Session::put('success',1);
        $this->formService->forgetSession();

        // Redirect to thank you page
        return \Redirect::to('/' . $route . '?status=success');
    }
}