MIF_E31210287/app/Http/Controllers/AdminController.php

91 lines
2.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\TestingData;
use App\Models\TrainingData;
use App\Models\User;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;
class AdminController extends Controller
{
public function index()
{
$data = [
'test' => TestingData::count(),
'train' => TrainingData::count(),
'total' => TestingData::count() + TrainingData::count()
];
return view('main.index', $data);
}
public function logout()
{
User::find(Auth::id())->update(['remember_token' => null]);
Auth::logout();
Session::invalidate();
Session::regenerateToken();
Session::flash('success', 'Anda sudah logout');
return to_route('login');
}
public function edit()
{
return view('main.profil');
}
public function update(Request $request)
{
$id = auth()->user()->id;
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', 'terdapat data yang belum diisi')->withInput();
}
$input = $request->all();
$findUser = User::find($id);
if($findUser) {
// update data
$findUser->name = $input['name'];
$findUser->email = $input['email'];
if(!empty($input['password'])) {
$findUser->password = bcrypt($input['password']);
}
// save data
$findUser->save();
return redirect()->back()->with('success', 'Data berhasil disimpan');
} else {
return redirect()->back()->with('error', 'Tidak ditemukan data!');
}
}
public function delete(Request $request)
{
try {
$request->validate(User::$delrules);
User::findOrFail(Auth::id())->delete();
Auth::logout();
Session::invalidate();
Session::regenerateToken();
Session::flash('success', "Akun sudah dihapus");
return response()->json(['message' => 'Akun sudah dihapus']);
} catch (ModelNotFoundException) {
return response()->json(['message' => 'Akun tidak ditemukan'], 404);
} catch (QueryException $db) {
Log::error($db);
return response()->json(['message' => $db->errorInfo[2]], 500);
}
}
}