89 lines
2.3 KiB
PHP
89 lines
2.3 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("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]);
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show($id)
|
|
{
|
|
$user = User::find($id);
|
|
return view('admin.users.detail-user', ['user' => $user]);
|
|
}
|
|
|
|
/**
|
|
* 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,
|
|
]);
|
|
}
|
|
}
|
|
}
|