mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Run time form requests
This commit is contained in:
parent
910aeebaf7
commit
c1a39a6ea0
@ -81,6 +81,7 @@ class ImportController extends Controller {
|
||||
/** @var UploadedFile $file */
|
||||
foreach ( $request->files->get( 'files' ) as $entityType => $file ) {
|
||||
$contents = file_get_contents( $file->getPathname() );
|
||||
// $contents = mb_convert_encoding($contents, 'UTF-16LE', 'UTF-8');
|
||||
|
||||
// Store the csv in cache with an expiry of 10 minutes
|
||||
Cache::put( $hash . '-' . $entityType, base64_encode( $contents ), 600 );
|
||||
|
@ -25,7 +25,6 @@ use Illuminate\Validation\Rule;
|
||||
class StoreClientRequest extends Request
|
||||
{
|
||||
use MakesHash;
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
@ -89,7 +88,7 @@ class StoreClientRequest extends Request
|
||||
protected function prepareForValidation()
|
||||
{
|
||||
$input = $this->all();
|
||||
|
||||
|
||||
$settings = ClientSettings::defaults();
|
||||
|
||||
if (array_key_exists('settings', $input) && ! empty($input['settings'])) {
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Http\Requests\RuntimeFormRequest;
|
||||
use App\Http\ValidationRules\User\RelatedUserRule;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
@ -18,7 +19,7 @@ use Illuminate\Foundation\Http\FormRequest;
|
||||
class Request extends FormRequest
|
||||
{
|
||||
use MakesHash;
|
||||
|
||||
use RuntimeFormRequest;
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
@ -163,9 +164,18 @@ class Request extends FormRequest
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists('email', $contact))
|
||||
$input['contacts'][$key]['email'] = trim($contact['email']);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $input;
|
||||
}
|
||||
|
||||
protected function prepareForValidation()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
43
app/Http/Requests/RuntimeFormRequest.php
Normal file
43
app/Http/Requests/RuntimeFormRequest.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
trait RuntimeFormRequest
|
||||
{
|
||||
public static function runFormRequest($value)
|
||||
{
|
||||
$value = self::getMockedRequestByParameters($value);
|
||||
|
||||
$validator = self::createFrom($value, new self());
|
||||
|
||||
$validator->setContainer(app());
|
||||
|
||||
$validator->prepareForValidation();
|
||||
|
||||
$validator->setValidator(Validator::make($validator->all(), $validator->rules()));
|
||||
|
||||
$instance = $validator->getValidatorInstance();
|
||||
|
||||
return $instance;
|
||||
// if ($instance->fails()) {
|
||||
// return $instance->errors();
|
||||
// }
|
||||
|
||||
// $validator->passedValidation();
|
||||
|
||||
// return $validator->all();
|
||||
}
|
||||
|
||||
|
||||
protected static function getMockedRequestByParameters($paramters)
|
||||
{
|
||||
$mockRequest = Request::create('', 'POST');
|
||||
|
||||
$mockRequest->merge($paramters);
|
||||
|
||||
return $mockRequest;
|
||||
}
|
||||
}
|
@ -372,11 +372,13 @@ class CSVImport implements ShouldQueue {
|
||||
$entity = $transformer->transform( $record );
|
||||
|
||||
/** @var \App\Http\Requests\Request $request */
|
||||
$request = new $request_name();
|
||||
// $request = new $request_name();
|
||||
// $request->prepareForValidation();
|
||||
|
||||
// Pass entity data to request so it can be validated
|
||||
$request->query = $request->request = new ParameterBag( $entity );
|
||||
$validator = Validator::make( $entity, $request->rules() );
|
||||
// $request->query = $request->request = new ParameterBag( $entity );
|
||||
// $validator = Validator::make( $entity, $request->rules() );
|
||||
$validator = $request_name::runFormRequest($entity);
|
||||
|
||||
if ( $validator->fails() ) {
|
||||
$this->error_array[ $entity_type ][] =
|
||||
|
Loading…
x
Reference in New Issue
Block a user