File: D:/HostingSpaces/SBogers10/wingssprayer.komma.pro/app/Forms/VacancyController.php
<?php
/**
* Created by PhpStorm.
* Date: 26/09/17
* Time: 15:24
*/
namespace App\Forms;
use App\Base\Controller;
use App\Http\Requests\VacancyRequest;
use App\Mail\VacancyMail;
use App\Pages\PageController;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\UploadedFile;
final class VacancyController extends Controller
{
/**
* @var FormService
*/
private $formService;
/**
* PlanDemoController constructor.
* @param FormService $formService
*/
public function __construct(FormService $formService)
{
parent::__construct();
$this->formService = $formService;
$this->formService->setOrigin('vacancy');
}
/**
* @param VacancyRequest $request
* @return \Illuminate\Http\JsonResponse
*/
public function process(VacancyRequest $request)
{
// Store request in the database
$this->formService->storeRequest($request);
if($request->hasFile('files'))
{
$mimetypes = [
'image/*' => 'Afbeelding' ,
'application/pdf' => 'PDF',
'application/msword' => 'Word 97-2004-document',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'Word-document',
// 'application/vnd.oasis.opendocument.text' => 'OpenOffice / LibreOffice',
];
$validator = Validator::make($request->all(), [
'files.*' => 'file|max:10240|mimetypes:'.implode(',', array_keys($mimetypes)), // 10MB (megabyte)
], [
'max' => __('vacancy.validation.max_file_upload', ['size' => '10 MB']),
'mimetypes' => __('vacancy.validation.mimetypes', ['types' => implode(', ', array_values($mimetypes))])
]);
$validator->validate();
}
// Remove token from request (this creates and array)
Mail::send(new VacancyMail($request->except('_token', 'files'), $request->file('files')));
// Redirect to the success page
return redirect(localized_route('vacancy.success') .'?success=true');
}
/**
* Show page where we thank the user
*
* @return mixed
*/
public function success()
{
$controller = new \App\Vacancies\VacancyController();
return $controller->index(true);
}
}