Added new API check if user with email exists or not
This commit is contained in:
parent
7bf30d722b
commit
60a3b3ab22
@ -6,8 +6,11 @@ using Marco.Pms.Model.Utilities;
|
||||
using Marco.Pms.Model.ViewModels.Employee;
|
||||
using Marco.Pms.Services.Service.ServiceInterfaces;
|
||||
using MarcoBMS.Services.Helpers;
|
||||
using MarcoBMS.Services.Service;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace MarcoBMS.Services.Controllers
|
||||
{
|
||||
@ -18,14 +21,17 @@ namespace MarcoBMS.Services.Controllers
|
||||
public class UserController : ControllerBase
|
||||
{
|
||||
private readonly UserHelper _userHelper;
|
||||
private readonly UserManager<ApplicationUser> _userManager;
|
||||
private readonly EmployeeHelper _employeeHelper;
|
||||
|
||||
private readonly ILoggingService _logger;
|
||||
private readonly IProjectServices _projectServices;
|
||||
private readonly RolesHelper _rolesHelper;
|
||||
|
||||
public UserController(EmployeeHelper employeeHelper, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper)
|
||||
public UserController(EmployeeHelper employeeHelper, UserManager<ApplicationUser> userManager, ILoggingService logger, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_userHelper = userHelper;
|
||||
_logger = logger;
|
||||
_employeeHelper = employeeHelper;
|
||||
_projectServices = projectServices;
|
||||
_rolesHelper = rolesHelper;
|
||||
@ -81,5 +87,44 @@ namespace MarcoBMS.Services.Controllers
|
||||
|
||||
return Ok(ApiResponse<object>.SuccessResponse(profile, "Success", 200));
|
||||
}
|
||||
|
||||
[HttpGet("email/{email}")]
|
||||
public async Task<IActionResult> GetUserByEmail(string email)
|
||||
{
|
||||
var isvalid = IsValidEmail(email);
|
||||
if (!isvalid)
|
||||
{
|
||||
_logger.LogWarning("User provided invalid email address");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid email", "Invalid email", 400));
|
||||
}
|
||||
var user = await _userManager.FindByEmailAsync(email);
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
_logger.LogInfo("User with email {Email} not found in ASP.NET users table", email);
|
||||
return Ok(ApiResponse<object>.SuccessResponse(true, "User not exists", 200));
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInfo("User with email {Email} founded in ASP.NET users table", email);
|
||||
return Ok(ApiResponse<object>.SuccessResponse(false, "User exists", 200));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static bool IsValidEmail(string email)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(email))
|
||||
return false;
|
||||
try
|
||||
{
|
||||
var addr = new MailAddress(email);
|
||||
return addr.Address == email.Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user