Add initial implementation of API, database, and user management components.
This commit is contained in:
42
MikrocopApi/Controllers/AuthController.cs
Normal file
42
MikrocopApi/Controllers/AuthController.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using MikrocopApi.Dtos;
|
||||
using MikrocopApi.Services;
|
||||
|
||||
namespace MikrocopApi.Controllers;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/auth")]
|
||||
public sealed class AuthController : ControllerBase
|
||||
{
|
||||
private readonly IAuthService _authService;
|
||||
private readonly IUserService _userService;
|
||||
|
||||
public AuthController(IAuthService authService, IUserService userService)
|
||||
{
|
||||
_authService = authService;
|
||||
_userService = userService;
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("register")]
|
||||
[ProducesResponseType<UserDto>(StatusCodes.Status201Created)]
|
||||
[ProducesResponseType<ProblemDetails>(StatusCodes.Status409Conflict)]
|
||||
[ProducesResponseType<ValidationProblemDetails>(StatusCodes.Status400BadRequest)]
|
||||
public async Task<IActionResult> Register([FromBody] CreateUserDto request, CancellationToken cancellationToken)
|
||||
{
|
||||
var user = await _userService.CreateAsync(request, cancellationToken);
|
||||
return Created($"/api/users/{user.Id}", user);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("login")]
|
||||
[ProducesResponseType<LoginResponseDto>(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType<ProblemDetails>(StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType<ValidationProblemDetails>(StatusCodes.Status400BadRequest)]
|
||||
public async Task<IActionResult> Login([FromBody] LoginRequestDto request, CancellationToken cancellationToken)
|
||||
{
|
||||
var response = await _authService.LoginAsync(request, cancellationToken);
|
||||
return Ok(response);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user