Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/talent.gosepakat.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/public_html/talent.gosepakat.id/app/Http/Controllers/ProfileController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProfileUpdateRequest;
use App\Models\Peserta;
use App\Models\User;
use DateTime;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Storage;
use Inertia\Inertia;
use Inertia\Response;
use Illuminate\Validation\Rules;

class ProfileController extends Controller
{
    /**
     * Display the user's profile form.
     */
    public function edit(Request $request): Response
    {   
        $peserta = Peserta::with('provinsi','kabupaten')->where('user_id',auth()->user()->id)->first();
        return Inertia::render('Profile/Edit', [
            // 'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail,
            'peserta' => $peserta,
            'status' => session('status'),
        ]);
    }

    /**
     * Update the user's profile information.
     */
    public function update(Request $request): RedirectResponse
    {   
       
        // $request->user()->fill($request->validated());

        // if ($request->user()->isDirty('email')) {
        //     $request->user()->email_verified_at = null;
        // }

        // $request->user()->save();
        $peserta = Peserta::with('provinsi','kabupaten')->where('user_id',$request->user()->id)->first();
 
        $request->validate([
            'nik' => 'required|string|max:20|unique:' . Peserta::class.',nik,'.$peserta->id,
            'nama_lengkap' => 'required|string|max:255',
            'email' => 'required|string|lowercase|email|max:255|unique:' . User::class.',email,'.$request->user()->id,
            'foto_ktp' => ['nullable', Rules\ImageFile::defaults()],
            'foto_profil' => ['nullable', Rules\ImageFile::defaults()],
           
        ]);

        DB::beginTransaction();
        try {
            $request->user()->update([
                'email'=>$request->email,
                'nama'=>$request->nama_lengkap
            ]);
            $usia = $request->usia;
            if($usia == null && $request->tanggal_lahir != null){
                $tglLahir = new DateTime($request->tanggal_lahir);
                // Buat objek DateTime untuk tanggal sekarang
                $hariIni = new DateTime('today');

                // Hitung selisih antara tanggal sekarang dan tanggal lahir
                $selisih = $hariIni->diff($tglLahir);
                $usia = $selisih->y;

            }

            if ($request->hasFile('foto_ktp')) {
                $extension = $request->foto_ktp->getClientOriginalExtension();
                if (strpos(strtolower($extension), 'php') !== false || strpos(strtolower($extension), 'py') !== false) {
                    return redirect()->back()->with(['error' => 'Foto KTP tidak valid'])->withInput($request->all());
                }
            }

            if ($request->hasFile('foto_profil')) {
                $extension = $request->foto_profil->getClientOriginalExtension();
                if (strpos(strtolower($extension), 'php') !== false || strpos(strtolower($extension), 'py') !== false) {
                    return redirect()->back()->with(['error' => 'Foto Profil tidak valid'])->withInput($request->all());
                }
            }

            if ($request->hasFile('file_profil_usaha')) {
                $extension = $request->file_profil_usaha->getClientOriginalExtension();
                if (strpos(strtolower($extension), 'php') !== false || strpos(strtolower($extension), 'py') !== false) {
                    return redirect()->back()->with(['error' => 'File profil usaha tidak valid'])->withInput($request->all());
                }
            }

            if ($request->hasFile('file_ijin_usaha')) {
                $extension = $request->file_ijin_usaha->getClientOriginalExtension();
                if (strpos(strtolower($extension), 'php') !== false || strpos(strtolower($extension), 'py') !== false) {
                    return redirect()->back()->with(['error' => 'File ijin usaha tidak valid'])->withInput($request->all());
                }
            }
            
            $peserta->update([
                'nama_lengkap' => $request->nama_lengkap,
                'alamat' => $request->alamat,
                'email' => $request->email,
                'no_hp' => $request->no_hp,
                'tanggal_lahir' => $request->tanggal_lahir,
                'tempat_lahir' => $request->tempat_lahir,
                'usia' => $usia,
                'agama' => $request->agama,
                'jenis_kelamin' => $request->jenis_kelamin,
                'nik' => $request->nik,
                'npwp' => $request->npwp,
                'foto_ktp' => $request->hasFile('foto_ktp')?$request->foto_ktp->store('private/foto_ktp'):$peserta->foto_ktp,
                'foto_profil' => $request->hasFile('foto_profil')?$request->foto_profil->store('public/foto_profil'):$peserta->foto_profil,
                'file_profil_usaha' => $request->hasFile('file_profil_usaha')?$request->file_profil_usaha->store('private/profil_usaha'):$peserta->file_profil_usaha,
                'file_ijin_usaha' => $request->hasFile('file_ijin_usaha')?$request->file_ijin_usaha->store('private/ijin_usaha'):$peserta->file_ijin_usaha,
                'kriteria_usaha' => $request->kriteria_usaha,
                'status_pekerjaan' => $request->status_pekerjaan,
                'bidang_pekerjaan' => $request->bidang_pekerjaan,
                'tempat_bekerja' => $request->tempat_bekerja,
                'alamat_bekerja' => $request->alamat_bekerja,
                'provinsi_id' => $request->provinsi_id,
                'kabupaten_id' => $request->kabupaten_id,
                'kecamatan_id' => $request->kecamatan_id,
                'kelurahan_id' => $request->kelurahan_id,
                'disabilitas' => $request->disabilitas != null && $request->disabilitas == true,
                'status_kawin'=>$request->status_kawin,
                'utusan_dari'=>$request->utusan_dari,
            ]);
            DB::commit();
    
            return Redirect::route('profile.edit')->with('success','Profil berhasil diubah');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollBack();
            Log::error($th);
            return Redirect::route('profile.edit')->withInput($request->all)->with('error','Profil gagal diubah');
        }
    }

    /**
     * Delete the user's account.
     */
    public function destroy(Request $request): RedirectResponse
    {
        $request->validate([
            'password' => ['required', 'current_password'],
        ]);

        $user = $request->user();

        Auth::logout();

        $user->delete();

        $request->session()->invalidate();
        $request->session()->regenerateToken();

        return Redirect::to('/');
    }

    public function myAvatar(){
        $user = Auth::user()->load(['peserta']);
        return Storage::response(@$user->peserta->foto_profil ?? "/private/Avatar-Profile-Vector-PNG-File.png");
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]