using Femto.Api.Sessions; using Femto.Modules.Auth.Application; using Femto.Modules.Auth.Application.Commands.Login; using Femto.Modules.Auth.Application.Commands.Register; using Microsoft.AspNetCore.Mvc; namespace Femto.Api.Controllers.Auth; [ApiController] [Route("auth")] public class AuthController(IAuthenticationModule authModule) : ControllerBase { [HttpPost("login")] public async Task> Login([FromBody] LoginRequest request) { var result = await authModule.PostCommand( new LoginCommand(request.Username, request.Password) ); HttpContext.SetSession(result.Session); return new LoginResponse(result.UserId, result.Username); } [HttpPost("signup")] public async Task> Signup([FromBody] SignupRequest request) { var result = await authModule.PostCommand( new RegisterCommand(request.Username, request.Password) ); HttpContext.SetSession(result.Session); return new SignupResponse(result.UserId, result.Username); } [HttpPost("delete-session")] public async Task DeleteSession([FromBody] DeleteSessionRequest request) { // TODO return Ok(new { }); } }