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'
);
}
}

View File

@@ -62,6 +62,7 @@ Route::prefix('linksehat')->group(function () {
Route::middleware('auth:sanctum')->group(function () {
Route::get('profile/{id}', [ProfileController::class, 'index'])->name('profile');
Route::get('change-profile/{id}', [ProfileController::class, 'changeProfile'])->name('change-profile');
Route::post('profile', [ProfileController::class, 'update'])->name('profile.update');
Route::post('notification-tokens/delete/{id}', [NotificationTokenController::class, 'destroy'])->name('profile.delete.token');
Route::post('notification-tokens', [NotificationTokenController::class, 'store'])->name('profile.store.token');

View File

@@ -5,6 +5,8 @@ namespace Modules\Linksehat\Transformers\User;
use Illuminate\Http\Resources\Json\JsonResource;
use App\Models\OLDLMS\User;
use App\Models\OLDLMS\UserDetail;
use Illuminate\Support\Facades\Auth;
use DB;
@@ -25,6 +27,18 @@ class UserProfileResource extends JsonResource
$dataMemberProfile = [];
if (count($memberProfile) > 0){
$urlAvatarDefault = $this->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/male-avatar.png';
$avatarMember = $this->detail->sImage ?? $urlAvatarDefault;
$dataUser = [
'id' => $this->nID,
'name' => $this->sFirstName . ' ' . $this->sLastName,
'relationship' => 'Me',
'avatar' => $avatarMember
];
array_push($dataMemberProfile, $dataUser);
foreach($memberProfile as $m){
$urlAvatarDefault = $m['detail']['nIDJenisKelamin'] == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/male-avatar.png';
$avatarMember = $m['detail']['sImage'] ?? $urlAvatarDefault;
@@ -40,6 +54,44 @@ class UserProfileResource extends JsonResource
array_push( $dataMemberProfile, $data);
}
} else {
$nID = (Auth::user()->nID);
if ($nID){
$memberProfile = User::with('detail')->where('nIDUser', $nID)->get()->toArray();
$dataMember = User::with('detail')->where('nID', $nID)->get()->first();
$urlAvatarDefault = $dataMember->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/male-avatar.png';
$avatarMember = $dataMember->detail->sImage ?? $urlAvatarDefault;
$dataUser = [
'id' => $dataMember->nID,
'name' => $dataMember->sFirstName . ' ' . $dataMember->sLastName,
'relationship' => 'Me',
'avatar' => $avatarMember
];
array_push($dataMemberProfile, $dataUser);
if (count($memberProfile) > 0){
foreach($memberProfile as $m){
$urlAvatarDefault = $m['detail']['nIDJenisKelamin'] == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/male-avatar.png';
$avatarMember = $m['detail']['sImage'] ?? $urlAvatarDefault;
$relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $m['nIDHubunganKeluarga'])->first('sHubunganKeluarga');
$data = [
'id' => $m['nID'],
'name' => $m['full_name'],
'relationship' => $relationship->sHubunganKeluarga,
'avatar' => $avatarMember,
];
array_push( $dataMemberProfile, $data);
}
}
}
}
// Principal