From 766605c4917e0ff0b049970d889d4219d4d0d451 Mon Sep 17 00:00:00 2001 From: Sai16F Date: Mon, 14 Apr 2025 17:34:14 +0200 Subject: [PATCH] All Tests Passed --- app/Http/Controllers/ArticleController.php | 6 ++--- app/Http/Controllers/BuildingController.php | 13 ++++------- app/Http/Controllers/PostController.php | 9 +++---- app/Http/Controllers/ProfileController.php | 16 ++++++------- app/Http/Controllers/UserController.php | 8 +++---- app/Http/Requests/StoreBuildingRequest.php | 20 +++++++++++----- app/Http/Requests/StoreItemRequest.php | 26 +++++++++++++++++++++ app/Rules/Uppercase.php | 19 +++++++++++++++ resources/views/products/create.blade.php | 13 +++++++++-- resources/views/projects/create.blade.php | 20 +++++++++++++--- resources/views/teams/create.blade.php | 13 +++++++++-- 11 files changed, 120 insertions(+), 43 deletions(-) create mode 100644 app/Http/Requests/StoreItemRequest.php create mode 100644 app/Rules/Uppercase.php diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index a1955393..cefa89b8 100644 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -6,10 +6,8 @@ use App\Rules\Uppercase; use Illuminate\Http\Request; -class ArticleController extends Controller -{ - public function store(Request $request) - { +class ArticleController extends Controller { + public function store(Request $request) { $request->validate([ // TASK: create your own validation rule called Uppercase // It should check whether title's first letter is uppercase diff --git a/app/Http/Controllers/BuildingController.php b/app/Http/Controllers/BuildingController.php index 9c752ab8..0f151ff4 100644 --- a/app/Http/Controllers/BuildingController.php +++ b/app/Http/Controllers/BuildingController.php @@ -4,20 +4,15 @@ use App\Http\Requests\StoreBuildingRequest; use App\Models\Building; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Validator; -class BuildingController extends Controller -{ - public function create() - { +class BuildingController extends Controller { + public function create() { return view('buildings.create'); } // TASK: Customize the validation error message to say "Please enter the name" - public function store(StoreBuildingRequest $request) - { - Building::create($validator->validated()); + public function store(StoreBuildingRequest $request) { + Building::create($request->validated()); return 'Success'; } diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php index cd0808b7..fda4242f 100644 --- a/app/Http/Controllers/PostController.php +++ b/app/Http/Controllers/PostController.php @@ -9,10 +9,11 @@ class PostController extends Controller { public function store(Request $request) { - $request->validate( - // ... TASK: write validation here so that "title" field - // would be required and unique in the "posts" DB table - ); + // ... TASK: write validation here so that "title" field + // would be required and unique in the "posts" DB table + $request->validate([ + 'title' => ['required', 'unique:posts,title'] + ]); // Saving the post Post::create(['title' => $request->title]); diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index bb6bab39..8373349f 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -4,15 +4,15 @@ use Illuminate\Http\Request; -class ProfileController extends Controller -{ - public function update(Request $request) - { +class ProfileController extends Controller { + public function update(Request $request) { + // TASK: imagine that in the Blade the fields are + // + // + // Write validation rules, so both name and email are required $request->validate([ - // TASK: imagine that in the Blade the fields are - // - // - // Write validation rules, so both name and email are required + 'profile.name' => 'required', + 'profile.email' => 'required' ]); auth()->user()->update($request->profile ?? []); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 404d7471..d493892d 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -5,13 +5,11 @@ use App\Http\Requests\UpdateUserRequest; use App\Models\User; -class UserController extends Controller -{ - public function update(User $user, UpdateUserRequest $request) - { +class UserController extends Controller { + public function update(User $user, UpdateUserRequest $request) { // TASK: change this line to not allow is_admin field to be updated // Update only the fields that are validated in UpdateUserRequest - $user->update($request->all()); + $user->update($request->except('is_admin')); return 'Success'; } diff --git a/app/Http/Requests/StoreBuildingRequest.php b/app/Http/Requests/StoreBuildingRequest.php index fbd8c064..138aa3b8 100644 --- a/app/Http/Requests/StoreBuildingRequest.php +++ b/app/Http/Requests/StoreBuildingRequest.php @@ -5,8 +5,7 @@ use Illuminate\Foundation\Http\FormRequest; // TASK: Customize the validation error message to say "Please enter the name" -class StoreBuildingRequest extends FormRequest -{ +class StoreBuildingRequest extends FormRequest { protected $redirectRoute = 'buildings.create'; /** @@ -14,8 +13,7 @@ class StoreBuildingRequest extends FormRequest * * @return bool */ - public function authorize() - { + public function authorize() { return true; } @@ -24,10 +22,20 @@ public function authorize() * * @return array */ - public function rules() - { + public function rules() { return [ 'name' => 'required' ]; } + + /** + * Get the error messages for the defined validation rules. + * + * @return array + */ + public function messages() { + return [ + 'name.required' => 'Please enter the name', + ]; + } } diff --git a/app/Http/Requests/StoreItemRequest.php b/app/Http/Requests/StoreItemRequest.php new file mode 100644 index 00000000..0526c9d7 --- /dev/null +++ b/app/Http/Requests/StoreItemRequest.php @@ -0,0 +1,26 @@ +|string> + */ + public function rules(): array { + return [ + 'name' => ['required'], + 'description' => ['required'], + ]; + } +} diff --git a/app/Rules/Uppercase.php b/app/Rules/Uppercase.php new file mode 100644 index 00000000..81905182 --- /dev/null +++ b/app/Rules/Uppercase.php @@ -0,0 +1,19 @@ + +
@csrf Name:
- +
{{-- TASK: show the validation error for the specific "name" field --}} {{-- using one Blade directive: pseudo-code below --}} {{-- @directive --}} {{-- {{ $message }} --}} {{-- @endDirective --}} + @error('name') +

{{ $message }}

+ @enderror

diff --git a/resources/views/projects/create.blade.php b/resources/views/projects/create.blade.php index dc19b63b..0ff77e7d 100644 --- a/resources/views/projects/create.blade.php +++ b/resources/views/projects/create.blade.php @@ -4,15 +4,29 @@ {{-- in case of title/description empty, visitor should see --}} {{-- "The name field is required." and "The description field is required." --}} -
+ @csrf Title:
- +

Description:
- +

+
diff --git a/resources/views/teams/create.blade.php b/resources/views/teams/create.blade.php index 2d003c05..3c5ccf2a 100644 --- a/resources/views/teams/create.blade.php +++ b/resources/views/teams/create.blade.php @@ -1,9 +1,18 @@ -
+ @csrf Name:
{{-- TASK: change this field so it would contain old value after validation error --}} - +

+ +

{{ old('name') }}