<?php
namespace App\Http\Controllers;
use App\Models\Profile;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Throwable;
class ProfileController extends Controller
{
public function show(String $id)
{
try {
$profile = User::find($id)->profile;
$data['profile'] = $profile;
return response()->view('Profile.index', $data);
} catch (Throwable $th) {
return redirect()->route('error.500');
}
}
public function update(Request $request, String $id)
{
try {
$validator = Validator::make($request->all(), [
'email' => 'required|email|',
'name' => 'required',
'password' => 'nullable|string|min:6|confirmed',
'nama_lengkap' => 'required|',
'alamat' => 'required|string|max:500',
'no_telp' => 'required|numeric|',
'photo' => 'nullable|image|mimes:jpeg,png,jpg|max:2048',
], [
'email.required' => 'Email wajib diisi.',
'email.email' => 'Format email tidak valid.',
'name.required' => 'Username wajib diisi.',
'password.min' => 'Password minimal 6 karakter.',
'password.confirmed' => 'Konfirmasi password tidak sesuai.',
'nama_lengkap.required' => 'Nama lengkap wajib diisi.',
'alamat.required' => 'Alamat wajib diisi.',
'no_telp.required' => 'Nomor WhatsApp wajib diisi.',
'photo.image' => 'Photo harus berupa gambar.',
]);
if ($validator->fails()) {
return response()->json([
'status' => 'error',
'errors' => $validator->errors(),
], 422);
}
$user = User::find($id);
$dataUser = [
'email' => $request->email,
'name' => $request->name,
];
if ($request->filled('password')) {
$dataUser['password'] = Hash::make($request->password);
}
$user->update($dataUser);
$profile = Profile::where('user_id', $id);
$dataProfile = [
'nama_lengkap' => $request->nama_lengkap,
'alamat' => $request->alamat,
'no_telp' => $request->no_telp,
];
if ($request->hasFile('photo')) {
$foto_file = $request->file('photo');
$foto_ekstensi = $foto_file->extension();
$foto_baru = "Profile-" . date('ymdhis') . ".$foto_ekstensi";
$foto_file->move(public_path('images/profile'), $foto_baru);
$dataProfile['photo'] = $foto_baru;
$getfoto = Profile::where('user_id', $id)->first();
$foto_lama = $getfoto->photo;
if(isset($foto_lama)){
File::delete(public_path('images/profile') . "/" . $foto_lama);
}
}
$profileUpdate=$profile->update($dataProfile);
return response()->json([
'status' => 'success',
'message' => 'Profile berhasil diperbarui.',
'photo' => $dataProfile['photo'],
], 200);
} catch (Throwable $th) {
return response()->json([
'status' => 'error',
'message' => $th->getMessage(),
], 200);
// return redirect()->route('error.500');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]