using System.Linq; using Microsoft.AspNetCore.Mvc; using TextSender_API.Models; using TextSender_API.Repositories; namespace TextSender_API.Controllers; [ApiController] [Route("api/v1/user")] public class RegisterController : ControllerBase { #region Fields private readonly ILogger _logger; private IConfiguration _config; #endregion #region Constructors public RegisterController(ILogger logger, IConfiguration config) { this._logger = logger; this._config = config; } #endregion #region Methods [HttpPost("register"), DisableRequestSizeLimit] public IActionResult Upload([FromBody] User userRequest) { try { var connString = this._config.GetConnectionString("MongoDBURI"); var userRepo = new UserRepository(connString); var allUsers = userRepo.RetrieveAllUsers(); var result = allUsers.Exists(ea => ea.Username.Equals(userRequest.Username)); if (!result) { this._logger.LogInformation("Creating user"); userRequest.DateCreated = DateTime.Now; userRepo.CreateUser(userRequest); } else { this._logger.LogInformation("User already exists"); } } catch (Exception ex) { this._logger.LogError($"An error occurred: {ex.Message}"); } return Ok(); } #endregion }