update change profile
This commit is contained in:
@@ -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'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user