Skip to content

Instantly share code, notes, and snippets.

@koyablue
Created April 2, 2021 09:20
Show Gist options
  • Save koyablue/d85f6ff0d879ca86ad7ce827e072078b to your computer and use it in GitHub Desktop.
Save koyablue/d85f6ff0d879ca86ad7ce827e072078b to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Requests;
use App\Models\Dto\FileImportDto;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class FileImportRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$fileTypes = array_column(array_values(config('values.file_type')), 'value');
return [
'joblist_file' => ['required', 'file', 'mimes:csv,txt'],
'file_type' => ['required', 'integer', Rule::in($fileTypes)]
];
}
/**
* convert request values into FileImportDto
*
* @return FileImportDto
*/
public function convertIntoDto(): FileImportDto
{
$uploadedFile = $this->file('joblist_file');
return new FileImportDto(
$uploadedFile,
(int)$this->input('file_type'),
$uploadedFile->getClientOriginalName(),
$uploadedFile->path()
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment