2025-04-27 22:31:11 +07:00

134 lines
3.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\helper\helperController;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class userController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$data = [
'title' => 'Data Karyawan'
];
return view('users.index', $data);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
try {
request()->validate([
'name' => 'required',
'email' => 'required',
'password' => 'required'
],[
'name.required' => 'Data wajib diisi',
'password.required' => 'Data wajib diisi',
'email.required' => 'Data wajib diisi'
]);
$payload = [
'uid' => (new helperController)->getUid(),
'name' => request('name'),
'email' => request('email'),
'password' => Hash::make(request('password'))
];
User::create($payload);
return response()->json([
'status' => 'success',
'message' => 'Berhasil! menambahkan data'
]);
} catch (\Throwable $th) {
return response()->json([
'status' => 'error',
'message' => 'gagal! menambahkan data' . $th->getMessage()
]);
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $uid)
{
$user = User::where('uid', $uid)->first();
try {
$payload = [
'name' => request('name'),
'email' => request('email'),
];
if(request('password')){
$payload['password'] = Hash::make(request('password'));
}
$user->update($payload);
return response()->json([
'status' => 'success',
'message' => 'Berhasil! edit data'
]);
} catch (\Throwable $th) {
return response()->json([
'status' => 'error',
'message' => 'gagal! edit data' . $th->getMessage()
]);
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $uid)
{
try {
User::where('uid', $uid)->update([
'is_delete' => true
]);
return response()->json([
'status' => 'success',
'message' => 'Berhasil! Hapus data'
]);
} catch (\Throwable $th) {
return response()->json([
'status' => 'error',
'message' => 'gagal! hapus data' . $th->getMessage()
]);
}
}
public function datatable(){
return User::where('is_delete', false)->get();
}
}