diff --git a/app/Http/Controllers/ImportController.php b/app/Http/Controllers/ImportController.php index bb0f320c6c9b..0b462c594c13 100644 --- a/app/Http/Controllers/ImportController.php +++ b/app/Http/Controllers/ImportController.php @@ -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 ); diff --git a/app/Http/Requests/Client/StoreClientRequest.php b/app/Http/Requests/Client/StoreClientRequest.php index b1525656173a..7d1b1ed4f7db 100644 --- a/app/Http/Requests/Client/StoreClientRequest.php +++ b/app/Http/Requests/Client/StoreClientRequest.php @@ -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'])) { diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index 628fb76ef547..74764d51b136 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -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() + { + + } } diff --git a/app/Http/Requests/RuntimeFormRequest.php b/app/Http/Requests/RuntimeFormRequest.php new file mode 100644 index 000000000000..3f028fc2848a --- /dev/null +++ b/app/Http/Requests/RuntimeFormRequest.php @@ -0,0 +1,43 @@ +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; + } +} \ No newline at end of file diff --git a/app/Jobs/Import/CSVImport.php b/app/Jobs/Import/CSVImport.php index 1933d10ecbbe..4057b949fe1b 100644 --- a/app/Jobs/Import/CSVImport.php +++ b/app/Jobs/Import/CSVImport.php @@ -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 ][] =