api update
This commit is contained in:
parent
b42bd4c6c5
commit
c851f2e4da
@ -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();
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user