using Common.Models.Auth; using Common.Models.Auth.CompanySide; using Common.Models.Auth.UserSide; using Hushian.Application.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Hushian.WebApi.Controllers.v1 { [Route("api/v1/[controller]")] [ApiController] public class AuthController : ControllerBase { private readonly AuthService _authService; private readonly VerificationService _verificationService; public AuthController(AuthService authService, VerificationService verificationService) { _authService = authService; _verificationService = verificationService; } [HttpPost("loginCompanySide")] public async Task> login([FromBody] AuthRequestFromCompanySide request) { var response = await _authService.AuthenticationFromCompanySide(request); if (response.Success) return Ok(response.Value); else return BadRequest(response.Errors); } [HttpPost("AuthenticationFromUser")] public async Task> AuthenticationFromUser([FromBody] AuthRequestFromUserSide request) { var response = await _authService.AuthenticationFromUserSide(request); if (response.Success) return Ok(response.Value); else return BadRequest(response.Errors); } [HttpPut("UserLoginVerification/{ID}/{Code}")] public async Task> UserLoginVerification(int ID,string Code) { var response = await _verificationService.VerificationCode(new Common.Dtos.Verification.ConfirmedCodeDto() { code =Code,codeType=Common.Enums.VerificationCodeType.Login,Id=ID}); if (response.Success) return Ok(response.Value); else return BadRequest(response.Errors); } [HttpGet("IsOnline")] [Authorize] public async Task IsOnline() { return NoContent(); } } }