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/ijzerenman.komma.pro/app/Custom/Forms/FormService.php
<?php


namespace Komma\Forms;


class FormService
{
    private $formName = '';

    /**
     * @var FormValidator
     */
    private $formValidator;

    private $errors;

    /**
     * @param FormValidator $formValidator
     */
    public function __construct(FormValidator $formValidator)
    {
        $this->formValidator = $formValidator;
    }

    /**
     * Return errors to the user
     *
     * @return mixed
     */
    public function errors()
    {
        return $this->errors;
    }

    /**
     * Which form are we on
     *
     * @param $name
     */
    public function setFormName($name)
    {
        $this->formName = $name;
    }

    /**
     * Save form data in session
     *
     * @param $data
     */
    public function saveInSession($data)
    {
        \Session::put($this->formName, $data);
    }
    /**
     * Save form data in session
     *
     * @param $data
     */
    public function forgetSession()
    {
        \Session::forget($this->formName);
    }

    /**
     * Get saved data from session
     *
     * @param $name
     * @return mixed
     */
    public function fromSession()
    {
        if( ! \Session::has($this->formName)) return $this->defaultValues();

        return \Session::get($this->formName);
    }

    /**
     * Validate form data
     *
     * @param $request
     * @return bool
     */
    public function isValid($request)
    {
        // Get rules
        $rules = \Config::get('komma/forms/rules.' . $this->formName);

        // Push rules to form validator
        $this->formValidator->setRules($rules);

        // Validate
        if($this->formValidator->isValid($request)) return true;

        // Set errors
        $this->errors = $this->formValidator->errorMessages();

        return false;
    }

    /**
     * Return only the request data that we need
     *
     * @param $request
     * @return array
     */
    public function data($request)
    {
        // Get data for email and stuff
        $data = [];
        foreach(array_keys($this->defaultValues()) as $field)
        {
            $data[$field] = $request[$field];
        }

        //$data['reservation_for'] = $request['global'];

        return $data;
    }

    /**
     * Get configuration for this form
     *
     * @return mixed
     */
    public function config()
    {
        return \Config::get('komma/forms/config.' . $this->formName);
    }

    /**
     * Get configuration for this form
     *
     * @return mixed
     */
    public function defaultValues()
    {
        return \Config::get('komma/forms/values.' . $this->formName);
    }

}