import User from '#models/user';
import env from '#start/env';
export default class AuthController {
    async showLogin({ view }) {
        return view.render('admin/login');
    }
    async login({ request, response, auth, session }) {
        const { email, password } = request.only(['email', 'password']);
        if (email === env.get('USER_LOGIN') && password === env.get('USER_PASSWORD')) {
            let user = await User.findBy('email', email);
            if (!user) {
                user = await User.create({
                    email,
                    password,
                    fullName: 'Admin',
                });
            }
            await auth.use('web').login(user);
            return response.redirect('/admin');
        }
        try {
            const user = await User.verifyCredentials(email, password);
            await auth.use('web').login(user);
            return response.redirect('/admin');
        }
        catch (error) {
            const isInvalidCredentials = error && typeof error === 'object' && 'code' in error && error.code === 'E_INVALID_CREDENTIALS';
            if (isInvalidCredentials) {
                session.flashExcept(['_csrf', '_method', 'password']);
                session.flashErrors({ error: 'Identifiants invalides. Vérifiez votre email et mot de passe.' });
                return response.redirect().back();
            }
            throw error;
        }
    }
    async logout({ response, auth }) {
        await auth.use('web').logout();
        return response.redirect('/admin/login');
    }
}
//# sourceMappingURL=auth_controller.js.map