update change profile
This commit is contained in:
@@ -9,6 +9,8 @@ use Illuminate\Http\Request;
|
|||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Modules\Linksehat\Transformers\User\ShowProfileResource;
|
use Modules\Linksehat\Transformers\User\ShowProfileResource;
|
||||||
|
use Modules\Linksehat\Transformers\User\UserProfileResource;
|
||||||
|
|
||||||
|
|
||||||
class ProfileController extends Controller
|
class ProfileController extends Controller
|
||||||
{
|
{
|
||||||
@@ -70,57 +72,7 @@ class ProfileController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function update(Request $request)
|
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)]);
|
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::middleware('auth:sanctum')->group(function () {
|
||||||
Route::get('profile/{id}', [ProfileController::class, 'index'])->name('profile');
|
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('profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||||
Route::post('notification-tokens/delete/{id}', [NotificationTokenController::class, 'destroy'])->name('profile.delete.token');
|
Route::post('notification-tokens/delete/{id}', [NotificationTokenController::class, 'destroy'])->name('profile.delete.token');
|
||||||
Route::post('notification-tokens', [NotificationTokenController::class, 'store'])->name('profile.store.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 Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use App\Models\OLDLMS\User;
|
use App\Models\OLDLMS\User;
|
||||||
use App\Models\OLDLMS\UserDetail;
|
use App\Models\OLDLMS\UserDetail;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
|
|
||||||
|
|
||||||
@@ -25,6 +27,18 @@ class UserProfileResource extends JsonResource
|
|||||||
$dataMemberProfile = [];
|
$dataMemberProfile = [];
|
||||||
|
|
||||||
if (count($memberProfile) > 0){
|
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){
|
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';
|
$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;
|
$avatarMember = $m['detail']['sImage'] ?? $urlAvatarDefault;
|
||||||
@@ -40,6 +54,44 @@ class UserProfileResource extends JsonResource
|
|||||||
|
|
||||||
array_push( $dataMemberProfile, $data);
|
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
|
// Principal
|
||||||
|
|||||||
Reference in New Issue
Block a user