Added new API check if user with email exists or not

This commit is contained in:
ashutosh.nehete 2025-08-05 11:18:31 +05:30
parent 7bf30d722b
commit 60a3b3ab22

View File

@ -6,8 +6,11 @@ using Marco.Pms.Model.Utilities;
using Marco.Pms.Model.ViewModels.Employee; using Marco.Pms.Model.ViewModels.Employee;
using Marco.Pms.Services.Service.ServiceInterfaces; using Marco.Pms.Services.Service.ServiceInterfaces;
using MarcoBMS.Services.Helpers; using MarcoBMS.Services.Helpers;
using MarcoBMS.Services.Service;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Net.Mail;
namespace MarcoBMS.Services.Controllers namespace MarcoBMS.Services.Controllers
{ {
@ -18,14 +21,17 @@ namespace MarcoBMS.Services.Controllers
public class UserController : ControllerBase public class UserController : ControllerBase
{ {
private readonly UserHelper _userHelper; private readonly UserHelper _userHelper;
private readonly UserManager<ApplicationUser> _userManager;
private readonly EmployeeHelper _employeeHelper; private readonly EmployeeHelper _employeeHelper;
private readonly ILoggingService _logger;
private readonly IProjectServices _projectServices; private readonly IProjectServices _projectServices;
private readonly RolesHelper _rolesHelper; 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; _userHelper = userHelper;
_logger = logger;
_employeeHelper = employeeHelper; _employeeHelper = employeeHelper;
_projectServices = projectServices; _projectServices = projectServices;
_rolesHelper = rolesHelper; _rolesHelper = rolesHelper;
@ -81,5 +87,44 @@ namespace MarcoBMS.Services.Controllers
return Ok(ApiResponse<object>.SuccessResponse(profile, "Success", 200)); 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;
}
}
} }
} }