86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers;
 | |
| 
 | |
| use Illuminate\Http\Request;
 | |
| use App\Models\User;
 | |
| use Illuminate\Support\Facades\Auth;
 | |
| 
 | |
| class UserController extends Controller
 | |
| {
 | |
|     public function index()
 | |
|     {
 | |
|         $users = User::all();
 | |
|         return response()->json(
 | |
|             $users
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function store(Request $request)
 | |
|     {
 | |
|         $request->validate([
 | |
|             'nama'    => 'required|string|unique:users',
 | |
|             'password' => 'required|min:6',
 | |
|             'role'     => 'required|in:owner,kasir',
 | |
|         ], [
 | |
|             'nama.require'    => 'Nama wajib diisi',
 | |
|             'nama.unique'     => 'Nama sudah digunakan',
 | |
|             'password.require' => 'Password wajib diisi',
 | |
|             'password.min'    => 'Password minimal 6 karakter',
 | |
|             'role.require'    => 'Role wajib diisi',
 | |
|             'role.in'        => 'Role harus owner atau kasir',
 | |
|         ]);
 | |
| 
 | |
|         User::create([
 | |
|             'nama'    => $request->nama,
 | |
|             'password' => $request->password,
 | |
|             'role'     => $request->role,
 | |
|         ]);
 | |
| 
 | |
|         return response()->json([
 | |
|             'message' => 'User berhasil ditambahkan'
 | |
|         ], 200);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public function update(Request $request, $id)
 | |
|     {
 | |
|         $user = User::findOrFail($id);
 | |
| 
 | |
|         $request->validate([
 | |
|             'nama'    => 'required|string|unique:users,nama,' . $id,
 | |
|             'password' => 'nullable|min:6',
 | |
|             'role'     => 'required|in:owner,kasir',
 | |
|         ], [
 | |
|             'nama.require'    => 'Nama wajib diisi',
 | |
|             'nama.unique'     => 'Nama sudah digunakan',
 | |
|             'password.min'    => 'Password minimal 6 karakter',
 | |
|             'role.require'    => 'Role wajib diisi',
 | |
|             'role.in'        => 'Role harus owner atau kasir',
 | |
|         ]);
 | |
| 
 | |
|         $data = [
 | |
|             'nama' => $request->nama,
 | |
|             'role' => $request->role,
 | |
|         ];
 | |
| 
 | |
|         if ($request->filled('password')) {
 | |
|             $data['password'] = $request->password;
 | |
|         }
 | |
| 
 | |
|         $user->update($data);
 | |
| 
 | |
|         return response()->json(['message' => 'User berhasil diupdate', 'user' => $user], 200);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public function destroy($id)
 | |
|     {
 | |
|         $user = User::findOrFail($id);
 | |
|         $user->delete();
 | |
|         return response()->json([
 | |
|             'message' => 'User berhasil dihapus'
 | |
|         ], 200);
 | |
|     }
 | |
| }
 |