MIF_E31212365/app/Http/Controllers/Admin/UserController.php

125 lines
3.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Kategori;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Inertia\Inertia;
class UserController extends Controller
{
public function index()
{
return Inertia::render('Admin/User', [
"kategori" => Kategori::all(),
]);
}
public function getUser(Request $request)
{
try {
//code...
$user = User::orderBy('created_at', 'DESC');
$user->with(['kategori']);
if ($request->has('search')) {
$user->where('name', 'like', '%' . $request->search . '%');
}
return response()->json([
"status" => "success",
"message" => "Data user berhasil diambil",
"result" => $user->paginate(10)
], 200);
} catch (\Throwable $th) {
//throw $th;
return response()->json([
"status" => "error",
"message" => $th->getMessage(),
], 400);
}
}
public function storeUser(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:50',
'email' => 'required|max:50|email|unique:users,email',
'password' => 'required',
'roles' => 'required',
]);
if ($validator->fails()) {
return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400);
}
$data = new User;
$data->name = $request->name;
$data->email = $request->email;
$data->password = bcrypt($request->password);
$data->role = $request->roles;
if ($request->has('category') || $request->category !== null || $request->category !== "") {
$data->kategori_id = $request->category;
}
$data->save();
// Berikan respon dengan data yang berhasil dibuat
return response()->json(['message' => 'Data created successfully', 'data' => $data], 201);
}
public function updateUser(Request $request)
{
$validator = Validator::make($request->all(), [
'id' => 'required',
'name' => 'required|string|max:50',
'email' => 'required|max:50|email|unique:users,email, ' . $request->id,
'roles' => 'required',
]);
if ($validator->fails()) {
return response()->json(['message' => 'Validation failed', 'errors' => $validator->errors()->first()], 400);
}
$user = User::find($request->id);
if (!$user) {
return response()->json(['message' => 'Data not found'], 404);
}
$user->name = $request->name;
$user->email = $request->email;
if ($request->has('password') && $request->password !== "" && $request->password !== null) {
$request['password'] = bcrypt($request->password);
$user->password = $request->password;
}
if ($request->has('category') || $request->category !== null || $request->category !== "") {
$user->kategori_id = $request->category;
}
$user->role = $request->roles;
$user->save();
return response()->json(['message' => 'Data updated successfully', 'data' => $user], 200);
}
public function deleteUser(Request $request)
{
$user = User::find($request->id);
if (!$user) {
return response()->json(['message' => 'Data not found'], 404);
}
$user->delete();
return response()->json(['message' => 'Data deleted successfully'], 200);
}
}