89 lines
3.2 KiB
C#
89 lines
3.2 KiB
C#
using AuthHex.Models.IOs;
|
|
using AuthHex.Services.AltOptionManager;
|
|
using AuthHex.Services.FunctionHandler;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Cors;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace AuthHex.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("api")]
|
|
[EnableCors("AllowAll")]
|
|
public class APIController(UserManager userManager, RecoveryManager recoveryManager, AltOptionManager altOptionManager, RoleManager roleManager) : ControllerBase
|
|
{
|
|
private readonly UserManager _userManager = userManager;
|
|
private readonly RecoveryManager _recoveryManager = recoveryManager;
|
|
private readonly AltOptionManager _altOptionManager = altOptionManager;
|
|
private readonly RoleManager _roleManager = roleManager;
|
|
|
|
[HttpGet("status")]
|
|
[AllowAnonymous]
|
|
public IActionResult GetStatus()
|
|
{
|
|
return Ok(new { status = "API is running", timestamp = System.DateTime.UtcNow });
|
|
}
|
|
|
|
[HttpPost("user")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> UserExecute([FromBody] ApiRequest request)
|
|
{
|
|
var response = await _userManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("recovery")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> RecoveryExecute([FromBody] ApiRequest request)
|
|
{
|
|
var response = await _recoveryManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("registerUser")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> RegisterUser([FromBody] ApiRequest request)
|
|
{
|
|
request.FunctionName = "registerUser";
|
|
var response = await _userManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("loginUser")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> LoginUser([FromBody] ApiRequest request)
|
|
{
|
|
request.FunctionName = "loginUser";
|
|
var response = await _userManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("forgotPassword")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> ForgotPassword([FromBody] ApiRequest request)
|
|
{
|
|
request.FunctionName = "forgotPassword";
|
|
var response = await _recoveryManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("alt")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> IsAvailable([FromBody] ApiRequest request)
|
|
{
|
|
|
|
var response = await _altOptionManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
[HttpPost("role")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> RoleExecute([FromBody] ApiRequest request)
|
|
{
|
|
var response = await _roleManager.Execute(request, HttpContext);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
}
|
|
}
|