using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using EonaCat.LogStack.Status.Services;

namespace EonaCat.LogStack.Status.Pages.Admin;

// This file is part of the EonaCat project(s) which is released under the Apache License.
// See the LICENSE file or go to https://EonaCat.com/License for full license details.

public class LoginModel : PageModel
{
    private readonly AuthenticationService _auth;
    public LoginModel(AuthenticationService auth) => _auth = auth;

    [BindProperty] public string Password { get; set; } = "";
    public string? Error { get; set; }

    public void OnGet() { }

    public async Task<IActionResult> OnPostAsync()
    {
        if (!string.IsNullOrWhiteSpace(Password) && await _auth.ValidatePasswordAsync(Password))
        {
            HttpContext.Session.SetString("IsAdmin", "true");
            return RedirectToPage("/Index");
        }
        Error = "Invalid password.";
        return Page();
    }
}
