From c851f2e4daff1c800b5eb5202ff8eeaf77359429 Mon Sep 17 00:00:00 2001 From: mohanmd Date: Tue, 2 Jun 2026 13:04:49 +0530 Subject: [PATCH] api update --- .../Api/EmployerProfileController.php | 28 +++++++++++++++++-- .../Employer/ProfileController.php | 27 ++++++++++++++++-- public/swagger.json | 15 +++++++--- 3 files changed, 60 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Api/EmployerProfileController.php b/app/Http/Controllers/Api/EmployerProfileController.php index c4f7e90..094a191 100644 --- a/app/Http/Controllers/Api/EmployerProfileController.php +++ b/app/Http/Controllers/Api/EmployerProfileController.php @@ -73,12 +73,21 @@ public function updateProfile(Request $request) /** @var User $employer */ $employer = $request->attributes->get('employer'); + $sponsor = \App\Models\Sponsor::where('email', $employer->email)->first(); + $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', - 'email' => 'required|string|email|max:255|unique:users,email,' . $employer->id, + 'email' => [ + 'required', + 'string', + 'email', + 'max:255', + 'unique:users,email,' . $employer->id, + $sponsor ? 'unique:sponsors,email,' . $sponsor->id : 'unique:sponsors,email', + ], 'phone' => 'required|string|max:255', 'company_name' => 'required|string|max:255', - 'language' => 'required|string|in:English,Arabic', + 'language' => 'required|string|in:English,Arabic,english,arabic', 'notifications' => 'required|boolean', 'current_password' => 'nullable|required_with:new_password|string', 'new_password' => 'nullable|string|min:8|confirmed', @@ -106,12 +115,25 @@ public function updateProfile(Request $request) } } + // Find old email before update to locate the correct sponsor record + $oldEmail = $employer->getOriginal('email') ?? $employer->email; + // Update user table $employer->update([ 'name' => $request->name, 'email' => $request->email, ]); + // Sync with corresponding sponsor record if found + $matchingSponsor = \App\Models\Sponsor::where('email', $oldEmail)->first(); + if ($matchingSponsor) { + $matchingSponsor->update([ + 'full_name' => $request->name, + 'email' => $request->email, + 'mobile' => $request->phone, + ]); + } + // Update employer_profiles table $profile = $employer->employerProfile; if (!$profile) { @@ -119,7 +141,7 @@ public function updateProfile(Request $request) } $profile->company_name = $request->company_name; $profile->phone = $request->phone; - $profile->language = $request->language; + $profile->language = ucfirst(strtolower($request->language)); $profile->notifications = $request->notifications; $profile->save(); diff --git a/app/Http/Controllers/Employer/ProfileController.php b/app/Http/Controllers/Employer/ProfileController.php index 2c0b08a..fcbbb2b 100644 --- a/app/Http/Controllers/Employer/ProfileController.php +++ b/app/Http/Controllers/Employer/ProfileController.php @@ -82,12 +82,21 @@ public function update(Request $request) return back()->withErrors(['general' => 'User session not found.']); } + $sponsor = \App\Models\Sponsor::where('email', $user->email)->first(); + $request->validate([ 'name' => 'required|string|max:255', - 'email' => 'required|string|email|max:255|unique:users,email,' . $user->id, + 'email' => [ + 'required', + 'string', + 'email', + 'max:255', + 'unique:users,email,' . $user->id, + $sponsor ? 'unique:sponsors,email,' . $sponsor->id : 'unique:sponsors,email', + ], 'phone' => 'required|string|max:255', 'company_name' => 'required|string|max:255', - 'language' => 'required|string|in:English,Arabic', + 'language' => 'required|string|in:English,Arabic,english,arabic', 'notifications' => 'required|boolean', 'nationality' => 'nullable|string|max:255', 'family_size' => 'nullable|string|max:255', @@ -99,12 +108,24 @@ public function update(Request $request) 'new_password' => 'nullable|string|min:8|confirmed', ]); + $oldEmail = $user->getOriginal('email') ?? $user->email; + // Update User Model $user->update([ 'name' => $request->name, 'email' => $request->email, ]); + // Sync with corresponding sponsor record if found + $matchingSponsor = \App\Models\Sponsor::where('email', $oldEmail)->first(); + if ($matchingSponsor) { + $matchingSponsor->update([ + 'full_name' => $request->name, + 'email' => $request->email, + 'mobile' => $request->phone, + ]); + } + // Update EmployerProfile $profile = $user->employerProfile; if (!$profile) { @@ -112,7 +133,7 @@ public function update(Request $request) } $profile->company_name = $request->company_name; $profile->phone = $request->phone; - $profile->language = $request->language; + $profile->language = ucfirst(strtolower($request->language)); $profile->notifications = $request->notifications; $profile->nationality = $request->nationality; diff --git a/public/swagger.json b/public/swagger.json index 975dcbc..a5aaac9 100644 --- a/public/swagger.json +++ b/public/swagger.json @@ -1908,7 +1908,9 @@ "type": "string", "enum": [ "English", - "Arabic" + "Arabic", + "english", + "arabic" ], "example": "English" }, @@ -2086,7 +2088,10 @@ "items": { "type": "string" }, - "example": ["childcare", "cooking"] + "example": [ + "childcare", + "cooking" + ] }, "availability_status": { "type": "string", @@ -2117,7 +2122,10 @@ "items": { "type": "string" }, - "example": ["English", "Tagalog"] + "example": [ + "English", + "Tagalog" + ] }, "age": { "type": "integer", @@ -2176,7 +2184,6 @@ } }, "/employers/candidates": { - "get": { "tags": [ "Employer/Pipeline"