import type { HttpContext } from '@adonisjs/core/http' import User from '../models/user.js' export default class AuthController { // Đăng ký async register({ request, response }: HttpContext) { try { const data = request.only(['email', 'password', 'user_name']) const user = await User.query().where('user_name', data.user_name).first() if (user) { return response.status(401).json({ status: false, message: 'Username is exist' }) } const newUser = await User.create(data) return response.json({ status: true, message: 'User created', user: newUser }) } catch (error) { return response.status(401).json({ error, status: false, message: 'Invalid credentials' }) } } // Đăng nhập async login({ request, auth, response }: HttpContext) { const { user_name: userName, password } = request.only(['user_name', 'password']) const user = await User.query().where('user_name', userName).first() if (!user) { return response.status(401).json({ message: 'Invalid Username or password' }) } try { // So sánh password if (user.password !== password) { return response.status(401).json({ message: 'Invalid username or password' }) } return response.json({ message: 'Login successful', user: { id: user.id, email: user.email, userName: user.userName }, }) } catch { return response.status(401).json({ message: 'Invalid credentials' }) } } // Đăng xuất async logout({ auth, response }: HttpContext) { return response.json({ message: 'Logged out successfully' }) } }