api update
This commit is contained in:
parent
b42bd4c6c5
commit
c851f2e4da
@ -73,12 +73,21 @@ public function updateProfile(Request $request)
|
|||||||
/** @var User $employer */
|
/** @var User $employer */
|
||||||
$employer = $request->attributes->get('employer');
|
$employer = $request->attributes->get('employer');
|
||||||
|
|
||||||
|
$sponsor = \App\Models\Sponsor::where('email', $employer->email)->first();
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'name' => 'required|string|max:255',
|
'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',
|
'phone' => 'required|string|max:255',
|
||||||
'company_name' => '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',
|
'notifications' => 'required|boolean',
|
||||||
'current_password' => 'nullable|required_with:new_password|string',
|
'current_password' => 'nullable|required_with:new_password|string',
|
||||||
'new_password' => 'nullable|string|min:8|confirmed',
|
'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
|
// Update user table
|
||||||
$employer->update([
|
$employer->update([
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'email' => $request->email,
|
'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
|
// Update employer_profiles table
|
||||||
$profile = $employer->employerProfile;
|
$profile = $employer->employerProfile;
|
||||||
if (!$profile) {
|
if (!$profile) {
|
||||||
@ -119,7 +141,7 @@ public function updateProfile(Request $request)
|
|||||||
}
|
}
|
||||||
$profile->company_name = $request->company_name;
|
$profile->company_name = $request->company_name;
|
||||||
$profile->phone = $request->phone;
|
$profile->phone = $request->phone;
|
||||||
$profile->language = $request->language;
|
$profile->language = ucfirst(strtolower($request->language));
|
||||||
$profile->notifications = $request->notifications;
|
$profile->notifications = $request->notifications;
|
||||||
$profile->save();
|
$profile->save();
|
||||||
|
|
||||||
|
|||||||
@ -82,12 +82,21 @@ public function update(Request $request)
|
|||||||
return back()->withErrors(['general' => 'User session not found.']);
|
return back()->withErrors(['general' => 'User session not found.']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sponsor = \App\Models\Sponsor::where('email', $user->email)->first();
|
||||||
|
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'name' => 'required|string|max:255',
|
'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',
|
'phone' => 'required|string|max:255',
|
||||||
'company_name' => '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',
|
'notifications' => 'required|boolean',
|
||||||
'nationality' => 'nullable|string|max:255',
|
'nationality' => 'nullable|string|max:255',
|
||||||
'family_size' => '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',
|
'new_password' => 'nullable|string|min:8|confirmed',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$oldEmail = $user->getOriginal('email') ?? $user->email;
|
||||||
|
|
||||||
// Update User Model
|
// Update User Model
|
||||||
$user->update([
|
$user->update([
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'email' => $request->email,
|
'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
|
// Update EmployerProfile
|
||||||
$profile = $user->employerProfile;
|
$profile = $user->employerProfile;
|
||||||
if (!$profile) {
|
if (!$profile) {
|
||||||
@ -112,7 +133,7 @@ public function update(Request $request)
|
|||||||
}
|
}
|
||||||
$profile->company_name = $request->company_name;
|
$profile->company_name = $request->company_name;
|
||||||
$profile->phone = $request->phone;
|
$profile->phone = $request->phone;
|
||||||
$profile->language = $request->language;
|
$profile->language = ucfirst(strtolower($request->language));
|
||||||
$profile->notifications = $request->notifications;
|
$profile->notifications = $request->notifications;
|
||||||
|
|
||||||
$profile->nationality = $request->nationality;
|
$profile->nationality = $request->nationality;
|
||||||
|
|||||||
@ -1908,7 +1908,9 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"English",
|
"English",
|
||||||
"Arabic"
|
"Arabic",
|
||||||
|
"english",
|
||||||
|
"arabic"
|
||||||
],
|
],
|
||||||
"example": "English"
|
"example": "English"
|
||||||
},
|
},
|
||||||
@ -2086,7 +2088,10 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"example": ["childcare", "cooking"]
|
"example": [
|
||||||
|
"childcare",
|
||||||
|
"cooking"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"availability_status": {
|
"availability_status": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -2117,7 +2122,10 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"example": ["English", "Tagalog"]
|
"example": [
|
||||||
|
"English",
|
||||||
|
"Tagalog"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"age": {
|
"age": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
@ -2176,7 +2184,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/employers/candidates": {
|
"/employers/candidates": {
|
||||||
|
|
||||||
"get": {
|
"get": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"Employer/Pipeline"
|
"Employer/Pipeline"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user