MIF_E31221247/app/Http/Controllers/API/AuthController.php

98 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\PenggunaPasien;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
use App\Http\Resources\PenggunaPasienResource;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
// Register function
public function register(Request $request)
{
$request->validate([
'nama' => 'required',
'email' => 'required|email|unique:pengguna_pasiens,email',
'password' => 'required|min:6',
'umur' => 'required',
'tanggal_lahir' => 'required',
'nama_orang_tua' => 'required',
'jenis_kelamin' => 'required',
'alamat' => 'required',
]);
$penggunaPasien = PenggunaPasien::create([
'nama' => $request->nama,
'email' => $request->email,
'password' => Hash::make($request->password),
'umur' => $request->umur,
'tanggal_lahir' => $request->tanggal_lahir,
'nama_orang_tua' => $request->nama_orang_tua,
'jenis_kelamin' => $request->jenis_kelamin,
'alamat' => $request->alamat,
]);
$token = $penggunaPasien->createToken('auth_token')->plainTextToken;
return response()->json([
'data' => new PenggunaPasienResource($penggunaPasien),
'access_token' => $token,
'token_type' => 'Bearer',
]);
}
// Login function
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
$penggunaPasien = PenggunaPasien::where('email', $request->email)->first();
if (!$penggunaPasien || !Hash::check($request->password, $penggunaPasien->password)) {
throw ValidationException::withMessages([
'email' => ['Email atau password salah.'],
]);
}
$token = $penggunaPasien->createToken('auth_token')->plainTextToken;
return response()->json([
'message' => 'Login berhasil!',
'access_token' => $token,
'token_type' => 'Bearer',
]);
}
// Logout function
public function logout(Request $request)
{
$request->user()->tokens()->delete();
return response()->json(['message' => 'Logout berhasil!']);
}
public function getUser(Request $request)
{
$user = Auth::user();
if (!$user) {
return response()->json([
'message' => 'Pengguna tidak ditemukan.'
], 404);
}
return response()->json([
'id' => $user->id,
'nama' => $user->nama,
'email' => $user->email,
]);
}
}