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/Anvil/anvil-industries.com/app/KommaApp/Forms/FormService.php
<?php
/**
 * Created by PhpStorm.
 * User: mike
 * Date: 28/09/17
 * Time: 15:58
 */

namespace App\KommaApp\Forms;


use Carbon\Carbon;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;

class FormService
{
    /**
     * Origin from where the request was done
     * f.e. 'contact','offer'
     *
     * @var
     */
    protected $origin;

    /**
     * Set the origin of the form request
     *
     * @param $origin
     */
    public function setOrigin($origin)
    {
        $this->origin = $origin;
    }

    /**
     * Store the request in the database
     */
    public function storeRequest($request)
    {
        if(is_array($request)) {
            $storeRequest = $request;
        }
        elseif(is_a(FormRequest::class, $request)){
            $storeRequest = $request->duplicate();
            $storeRequest = $storeRequest->except('_token');
        }
        else{
            dd('error');
        }

        foreach ($storeRequest as $name => $value) {
            if ( ! \Schema::hasColumn('requests', $name)) {
                \Schema::table('requests', function ($table) use ($name) {
                    $table->text($name)->nullable();
                });
            }
        }

        $dbRequest = new \App\KommaApp\Forms\Models\Request();
        $dbRequest->origin = $this->origin;
        $dbRequest->created_at = Carbon::now()->toDateTimeString();
        $dbRequest->updated_at = Carbon::now()->toDateTimeString();
        foreach ($storeRequest as $name => $value) {
            $dbRequest->$name = $value;
        }
        $dbRequest->save();
    }


//    public function sendRequest(FormRequest $request, $replyToInputEmail = false)
//    {
//        // Remove token from request
//        $request = $request->except('_token');
//
//        // Set custom reply to
//        if ($replyToInputEmail) {
//            $replyTo = $request['email'];
//        }else {
//            $replyTo = \Config::get('mail.to.address');
//        }
//
//        // Add breaks to message
//        if (isset($request['message'])) {
//            $request['message'] = nl2br($request['message']);
//        }
//
//        \Mail::send('site.emails.' . $this->origin, [
//            'request' => $request
//        ], function ($message) use ($replyTo) {
//
//            // Set receiver
//            $message->to(\Config::get('mail.to.address'), \Config::get('mail.to.name'));
//
//            // Set subject
//            $message->subject(\Lang::get('site/emails/' . $this->origin . '.subject'));
//
//            // Set replyTo
//            $message->replyTo($replyTo);
//
//        });
//    }
}