From 09d1826c7f4e0c0885bcd80f43aab12e13cc7cb6 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Thu, 12 Feb 2026 16:14:11 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=9A=A8=20resolve=20phpstan=20error?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Enums/Contact/ContactFormType.php | 1 + app/Enums/DynamicFieldTypes.php | 2 +- .../Back/CompanySectorController.php | 2 ++ app/Http/Controllers/Back/InputsController.php | 6 +++--- app/Http/Middleware/ForceLocale.php | 7 ++++--- app/Http/Middleware/Lang.php | 11 ++++++++--- .../Back/Companies/StoreCompanyRequest.php | 9 +++++---- .../Back/Companies/UpdateCompanyRequest.php | 18 ++++++++++++++++++ .../Back/UpdateDynamicFieldRequest.php | 1 + app/Http/Requests/Back/UploadFileRequest.php | 1 + 10 files changed, 44 insertions(+), 14 deletions(-) diff --git a/app/Enums/Contact/ContactFormType.php b/app/Enums/Contact/ContactFormType.php index 62258b28..40fe725f 100644 --- a/app/Enums/Contact/ContactFormType.php +++ b/app/Enums/Contact/ContactFormType.php @@ -282,6 +282,7 @@ enum ContactFormType: int self::press => [ 'communicationgroupe@ldc.fr', ], + // phpcs:ignore Squiz.Commenting.InlineComment }; //end match } } diff --git a/app/Enums/DynamicFieldTypes.php b/app/Enums/DynamicFieldTypes.php index 35521c5b..c65d40bb 100644 --- a/app/Enums/DynamicFieldTypes.php +++ b/app/Enums/DynamicFieldTypes.php @@ -75,7 +75,7 @@ enum DynamicFieldTypes: int self::date->name => 'required|date', self::color->name => 'required|string|hex_color', self::model->name => 'required|numeric|exists:dynamic_pages,id', - self::staticroute->name => 'required|numeric|between:1,10', + self::staticroute->name => 'required|numeric|between:1,99', // Specific inputs. self::position->name => 'required|numeric|between:1,5', diff --git a/app/Http/Controllers/Back/CompanySectorController.php b/app/Http/Controllers/Back/CompanySectorController.php index 6e4b5a03..e984e691 100644 --- a/app/Http/Controllers/Back/CompanySectorController.php +++ b/app/Http/Controllers/Back/CompanySectorController.php @@ -92,8 +92,10 @@ class CompanySectorController extends Controller */ public function show(CompanySector $company_sector): \Inertia\Response { + $companies = $company_sector->companies()->paginate(ItemsPerPaginationEnum::five->value()); return Inertia::render('CompanySectors/Show', [ 'data' => CommonResource::make($company_sector), + 'companies' => CommonResource::collection($companies), 'modelName' => $this->modelName, ]); } diff --git a/app/Http/Controllers/Back/InputsController.php b/app/Http/Controllers/Back/InputsController.php index bc4cd708..ab5d429b 100644 --- a/app/Http/Controllers/Back/InputsController.php +++ b/app/Http/Controllers/Back/InputsController.php @@ -43,9 +43,8 @@ class InputsController extends Controller return response()->json(['error' => 'Invalid model class'], 404); } - // Determine the field to display. - $model = new $modelClass(); + $model = new $modelClass(); $isTranslatable = method_exists($model, 'getTranslations'); $locale = app()->getLocale(); @@ -184,7 +183,8 @@ class InputsController extends Controller public function uploadFile(UploadFileRequest $request): \Illuminate\Http\JsonResponse { // Get the class of the target model and verify its existence. - $modelClass = "App\\Models\\$request->folder"; + $modelName = Str::singular($request->validated()['folder']); + $modelClass = "App\\Models\\$modelName"; if (!class_exists($modelClass)) { return response()->json(['error' => 'Invalid model class'], 404); } diff --git a/app/Http/Middleware/ForceLocale.php b/app/Http/Middleware/ForceLocale.php index 30b53180..8f0829d9 100644 --- a/app/Http/Middleware/ForceLocale.php +++ b/app/Http/Middleware/ForceLocale.php @@ -20,9 +20,10 @@ class ForceLocale * The issue occurred when two browser tabs were open in different locales: * the data being saved could end up using the other tab’s locale. * - * @param Request $request - * @param Closure $next + * @param \Illuminate\Http\Request $request + * @param Closure $next * @return mixed + * @throws ValidationException Not supported locale. */ public function handle(Request $request, Closure $next): mixed { @@ -43,7 +44,7 @@ class ForceLocale $requestLocale = $request->locale ?? config('app.fallback_locale'); // 2. If prefix is not in supportedLocales if (!in_array($requestLocale, LaravelLocalization::getSupportedLanguagesKeys(), true)) { - throw ValidationException::withMessages(["Langue" => "locale pas accepté"]); + throw ValidationException::withMessages(["Langue" => "Not supported locale."]); } // 3. Set new locale if locale and prefix are not the same if ($requestLocale !== app()->getLocale()) { diff --git a/app/Http/Middleware/Lang.php b/app/Http/Middleware/Lang.php index 2455cc57..5d5a4266 100644 --- a/app/Http/Middleware/Lang.php +++ b/app/Http/Middleware/Lang.php @@ -5,13 +5,18 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; - class Lang { - + /** + * Handle an incoming request. + * Not used but need it for uwil package. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @return \Symfony\Component\HttpFoundation\Response + */ public function handle(Request $request, Closure $next): mixed { return $next($request); } - } diff --git a/app/Http/Requests/Back/Companies/StoreCompanyRequest.php b/app/Http/Requests/Back/Companies/StoreCompanyRequest.php index 3140859e..7bf2a780 100644 --- a/app/Http/Requests/Back/Companies/StoreCompanyRequest.php +++ b/app/Http/Requests/Back/Companies/StoreCompanyRequest.php @@ -3,9 +3,10 @@ namespace App\Http\Requests\Back\Companies; use App\Models\Company; -use Illuminate\Foundation\Http\FormRequest; use App\Traits\Requests\HasInertiaPicture; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Gate; +use Uwil\LaravelCommon\Rules\WysiwygLength; class StoreCompanyRequest extends FormRequest { @@ -42,13 +43,13 @@ class StoreCompanyRequest extends FormRequest public function rules(): array { return [ - 'name' => 'required|string|between:3,255', + 'name' => 'required|string|between:3,255|unique:companies,name', 'logo' => $this->pictureRules( 'required|nullable|file|mimes:jpg,jpeg,png,webp|max:5120|dimensions:width=500,height=500', ), 'responsable' => 'required|nullable|string|between:3,255', - 'url' => 'required|nullable|string|between:3,255', - 'informations' => 'required|string|between:3,255', + 'url' => 'nullable|string|between:3,255', + 'informations' => ['required', 'string', new WysiwygLength(10, 5000)], 'employees' => 'required|nullable|numeric|between:0,100000', 'latitude' => 'required|numeric|between:-90,90', 'longitude' => 'required|numeric|between:-180,180', diff --git a/app/Http/Requests/Back/Companies/UpdateCompanyRequest.php b/app/Http/Requests/Back/Companies/UpdateCompanyRequest.php index 3798a43d..c874892d 100644 --- a/app/Http/Requests/Back/Companies/UpdateCompanyRequest.php +++ b/app/Http/Requests/Back/Companies/UpdateCompanyRequest.php @@ -15,4 +15,22 @@ class UpdateCompanyRequest extends StoreCompanyRequest { return Gate::check('update', $this->route('company')); } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + $rules = [ + 'name' => [ + 'required', + 'string', + 'between:3,255', + 'unique:companies,name,' . request()->company->getKey(), + ], + ]; + return \array_merge(parent::rules(), $rules); + } } diff --git a/app/Http/Requests/Back/UpdateDynamicFieldRequest.php b/app/Http/Requests/Back/UpdateDynamicFieldRequest.php index fb111d24..c1b2b4cb 100644 --- a/app/Http/Requests/Back/UpdateDynamicFieldRequest.php +++ b/app/Http/Requests/Back/UpdateDynamicFieldRequest.php @@ -4,6 +4,7 @@ namespace App\Http\Requests\Back; use App\Enums\ElementPositionEnum; use App\Enums\DynamicFieldTypes; +use App\Enums\StaticRoutesEnum; use App\Models\PageConfig; use App\Traits\Requests\HasInertiaPicture; use Illuminate\Foundation\Http\FormRequest; diff --git a/app/Http/Requests/Back/UploadFileRequest.php b/app/Http/Requests/Back/UploadFileRequest.php index 66dd186b..5b2ede83 100644 --- a/app/Http/Requests/Back/UploadFileRequest.php +++ b/app/Http/Requests/Back/UploadFileRequest.php @@ -34,6 +34,7 @@ class UploadFileRequest extends FormRequest 'max:5048', 'dimensions:min_width=567,min_height=567,max_width:1008,max_height:1008', ], + 'folder' => 'required|string|between:3,255', ]; } }