mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-01 06:14:37 -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 */
|
/** @var UploadedFile $file */
|
||||||
foreach ( $request->files->get( 'files' ) as $entityType => $file ) {
|
foreach ( $request->files->get( 'files' ) as $entityType => $file ) {
|
||||||
$contents = file_get_contents( $file->getPathname() );
|
$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
|
// Store the csv in cache with an expiry of 10 minutes
|
||||||
Cache::put( $hash . '-' . $entityType, base64_encode( $contents ), 600 );
|
Cache::put( $hash . '-' . $entityType, base64_encode( $contents ), 600 );
|
||||||
|
@ -25,7 +25,6 @@ use Illuminate\Validation\Rule;
|
|||||||
class StoreClientRequest extends Request
|
class StoreClientRequest extends Request
|
||||||
{
|
{
|
||||||
use MakesHash;
|
use MakesHash;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if the user is authorized to make this request.
|
* Determine if the user is authorized to make this request.
|
||||||
*
|
*
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Http\Requests\RuntimeFormRequest;
|
||||||
use App\Http\ValidationRules\User\RelatedUserRule;
|
use App\Http\ValidationRules\User\RelatedUserRule;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -18,7 +19,7 @@ use Illuminate\Foundation\Http\FormRequest;
|
|||||||
class Request extends FormRequest
|
class Request extends FormRequest
|
||||||
{
|
{
|
||||||
use MakesHash;
|
use MakesHash;
|
||||||
|
use RuntimeFormRequest;
|
||||||
/**
|
/**
|
||||||
* Get the validation rules that apply to the request.
|
* 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;
|
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 );
|
$entity = $transformer->transform( $record );
|
||||||
|
|
||||||
/** @var \App\Http\Requests\Request $request */
|
/** @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
|
// Pass entity data to request so it can be validated
|
||||||
$request->query = $request->request = new ParameterBag( $entity );
|
// $request->query = $request->request = new ParameterBag( $entity );
|
||||||
$validator = Validator::make( $entity, $request->rules() );
|
// $validator = Validator::make( $entity, $request->rules() );
|
||||||
|
$validator = $request_name::runFormRequest($entity);
|
||||||
|
|
||||||
if ( $validator->fails() ) {
|
if ( $validator->fails() ) {
|
||||||
$this->error_array[ $entity_type ][] =
|
$this->error_array[ $entity_type ][] =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user