update change profile

This commit is contained in:
2023-11-06 17:03:55 +07:00
parent 1389875c8b
commit 40ac4feeaa
3 changed files with 68 additions and 50 deletions

View File

@@ -9,6 +9,8 @@ use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Modules\Linksehat\Transformers\User\ShowProfileResource;
use Modules\Linksehat\Transformers\User\UserProfileResource;
class ProfileController extends Controller
{
@@ -70,57 +72,7 @@ class ProfileController extends Controller
*/
public function update(Request $request)
{
$request->validate([
'nik' => 'numeric',
'name_prefix' => '',
'name' => '',
'name_suffix' => '',
'gender' => 'in:P,L',
'birth_date' => 'sometimes:date',
// 'is_deceased' => '',
'deceased_at' => 'sometimes:date',
'marital_status' => 'in:S,M,C',
'preferred_lang' => 'in:id,en'
]);
$user = Auth::user();
if ($user->person) { // Update Profile
$user->person->fill($request->only([
'nik', 'name_prefix', 'name', 'name_suffix', 'gender', 'birth_date', 'deceased_at', 'marital_status'
]))->save();
if ($request->has('preferred_lang')) {
$user->metas()->updateOrCreate([
'type' => 'preferred_lang'
], [
'system' => 'default',
'type' => 'preferred_lang',
'value' => $request->preferred_lang,
]);
}
} else { // Create If Not Exist
$newPerson = array_merge(
$request->only([
'nik', 'name_prefix', 'name', 'name_suffix', 'gender', 'birth_date', 'deceased_at', 'marital_status'
]),
['user_owner_id' => $user->id]
);
$newPerson = $user->person()->create($newPerson);
$user->person_id = $newPerson->id;
$user->save();
if ($request->has('preferred_lang')) {
$user->metas()->updateOrCreate([
'type' => 'preferred_lang'
], [
'system' => 'default',
'type' => 'preferred_lang',
'value' => $request->preferred_lang,
]);
}
}
$user = User::find($user->id); // ReLoad User Data
return Helper::responseJson(['users' => new UserProfileResource($user)]);
}
@@ -133,4 +85,17 @@ class ProfileController extends Controller
{
//
}
public function changeProfile($id){
$user = User::with('detail')
->where('nID', $id)
->first();
return Helper::responseJson(
data: [
// 'token' => $user->createToken('app')->plainTextToken,
'user' => UserProfileResource::make($user),
],
message: 'Selamat Datang'
);
}
}