Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/langganan.fixmate.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/langganan.fixmate.id/app/Http/Controllers/ProfileController.php

<?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]