62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
using khmereid_backend.Dtos;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using khmereid_backend.Services;
|
|
using khmereid_backend.Extensions;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
namespace khmereid_backend.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("auth")]
|
|
public class AuthController(AuthService _authService) : ControllerBase
|
|
{
|
|
[AllowAnonymous]
|
|
[HttpPost("request-signup-otp")]
|
|
public async Task<IActionResult> RequestSignupOtp([FromForm] SignupRequest request)
|
|
{
|
|
var response = await _authService.StartRegistrationAsync(request.Phone);
|
|
|
|
return this.ToActionResult(response);
|
|
}
|
|
|
|
[AllowAnonymous]
|
|
[HttpPost("verify-signup-otp")]
|
|
public async Task<IActionResult> VerifySignupOtp([FromForm] VerifyOtpRequest request)
|
|
{
|
|
var response = await _authService.CompleteRegistrationAsync(request.FlowId, request.Phone, request.Otp);
|
|
|
|
return this.ToActionResult(response);
|
|
}
|
|
|
|
[AllowAnonymous]
|
|
[HttpPost("request-login-otp")]
|
|
public async Task<IActionResult> RequestLoginOtp([FromForm] LoginRequest request)
|
|
{
|
|
var response = await _authService.StartLoginAsync(request.Phone);
|
|
return this.ToActionResult(response);
|
|
}
|
|
|
|
[AllowAnonymous]
|
|
[HttpPost("verify-login-otp")]
|
|
public async Task<IActionResult> VerifyLoginOtp([FromForm] VerifyOtpRequest request)
|
|
{
|
|
var response = await _authService.CompleteLoginAsync(request.FlowId, request.Phone, request.Otp);
|
|
|
|
return this.ToActionResult(response);
|
|
}
|
|
|
|
[HttpPost("logout")]
|
|
public async Task<IActionResult> Logout()
|
|
{
|
|
var token = Request.Headers.Authorization.ToString().Replace("Bearer ", "");
|
|
var response = await _authService.LogoutAsync(token);
|
|
return this.ToActionResult(response);
|
|
}
|
|
|
|
[AllowAnonymous]
|
|
[HttpGet("options")]
|
|
public IActionResult GetAuthOptions()
|
|
{
|
|
return Ok(ApiResponse<string>.Ok(null, "Not implemented."));
|
|
}
|
|
} |