dashboard-admin/app/Http/Controllers/Admin/AdminUserController.php

128 lines
3.1 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminUserController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
// $users = User::where('role', 'User')
// ->orderByRaw("FIELD(status, 'Progress', 'Finished', 'Rejected') ASC")
// ->latest()
// ->get();
$users = User::where('role', 'User')
->orderByRaw("CASE WHEN status = 'Progress' THEN 1 WHEN status = 'Finished' THEN 2 WHEN status = 'Rejected' THEN 3 ELSE 4 END ASC")
->latest()
->get();
return view('admin.users.index', ['users' => $users]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show($id)
{
$user = User::find($id);
return view('admin.users.detail-user', ['user' => $user]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(User $user)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
return response()->json([
'user' => $request,
'id' => $id,
]);
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
try {
$result = User::destroy($id);
if ($result) {
return response()->json([
'message' => 'Berhasil hapus data',
'status' => true,
]);
}
} catch (\Exception $e) {
return response()->json([
'message' => 'Gagal hapus data, karena ' . $e,
'status' => false,
]);
}
}
public function approveUser($id)
{
$user = User::findOrFail($id);
$user->status = 'Finished';
$result = $user->save();
if ($result) {
return response()->json([
'message' => 'Akun telah disetujui dan dapat digunakan',
'status' => true,
]);
} else {
return response()->json([
'message' => 'Akun gagal disetujui karena ' + $result,
'status' => false,
]);
}
}
public function denyUser($id)
{
$user = User::findOrFail($id);
$user->status = 'Rejected';
$result = $user->save();
if ($result) {
return response()->json([
'message' => 'Akun telah ditolak dan tidak dapat digunakan',
'status' => true,
]);
} else {
return response()->json([
'message' => 'Akun gagal ditolak karena ' + $result,
'status' => false,
]);
}
}
}