From 461d8247cc11b2e9a0c65fd22bd19fee70413646 Mon Sep 17 00:00:00 2001 From: Tim MacDonald Date: Sun, 25 Feb 2024 09:25:35 +1100 Subject: [PATCH] wip --- src/Recorders/ValidationErrors.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Recorders/ValidationErrors.php b/src/Recorders/ValidationErrors.php index aa3f157e..95167c89 100644 --- a/src/Recorders/ValidationErrors.php +++ b/src/Recorders/ValidationErrors.php @@ -101,7 +101,7 @@ protected function parseSessionValidationErrors(Request $request, BaseResponse $ // TODO test this return collect($bags)->flatMap( - fn ($bag, $bagName) => collect($bags[0]->keys())->map(fn ($inputName) => "{$bagName}:{$inputName}") + fn ($bag, $bagName) => collect($bag->keys())->map(fn ($inputName) => "{$bagName}:{$inputName}") ); } @@ -118,12 +118,12 @@ protected function parseJsonValidationErrors(Request $request, BaseResponse $res ! is_array($response->original) || ! array_key_exists('errors', $response->original) || ! is_array($response->original['errors']) || - array_is_list($response->original['errors']) + array_is_list($errors = $response->original['errors']) ) { return null; } - return collect($response->original['errors'])->keys(); + return collect($errors)->keys(); } /** @@ -140,13 +140,19 @@ protected function parseInertiaValidationErrors(Request $request, BaseResponse $ ! array_key_exists('props', $response->original) || ! is_array($response->original['props']) || ! array_key_exists('errors', $response->original['props']) || - ! $response->original['props']['errors'] instanceof stdClass + ! ($errors = $response->original['props']['errors']) instanceof stdClass ) { return null; } - // TODO error bags - return collect($response->original['props']['errors'])->keys(); + if (is_string(($errors = collect($errors))->first())) { + return $errors->keys(); + } + + // TODO test this + return $errors->flatMap( + fn ($bag, $bagName) => collect($bag)->keys()->map(fn ($inputName) => "{$bagName}:{$inputName}") + ); } /**