Files
YABA/API/YABA.API/Controllers/UsersController.cs
Carl Tibule 9bbd12e4c3
All checks were successful
ci/woodpecker/tag/api_build Pipeline was successful
ci/woodpecker/tag/api_uploadimage Pipeline was successful
ci/woodpecker/tag/web_uploadimage Pipeline was successful
Created Woodpecker CI/CD deployment
- Created Dockerfile for packing up API and Web projects as Docker image
2024-04-05 23:36:49 -05:00

45 lines
1.3 KiB
C#

using AutoMapper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Net;
using YABA.API.Extensions;
using YABA.API.ViewModels;
using YABA.Service.Interfaces;
namespace YABA.API.Controllers
{
[ApiController]
[ApiVersion("1")]
[Authorize]
[Route("api/v{version:apiVersion}/[controller]")]
public class UsersController : ControllerBase
{
private readonly IMapper _mapper;
private readonly IUserService _userService;
public UsersController(IMapper mapper, IUserService userService)
{
_mapper = mapper;
_userService = userService;
}
[HttpPost]
[ProducesResponseType(typeof(UserResponse), (int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType((int)HttpStatusCode.NoContent)]
public async Task<IActionResult> Register()
{
var authProviderId = this.GetAuthProviderId();
if (string.IsNullOrEmpty(authProviderId)) return NotFound();
var isRegistered = _userService.IsUserRegistered(authProviderId);
if (isRegistered) return NoContent();
var registedUser = await _userService.RegisterUser(authProviderId);
return Ok(_mapper.Map<UserResponse>(registedUser));
}
}
}