From 0ffabd35aa09364697536979618b2ed87d669a15 Mon Sep 17 00:00:00 2001 From: YouWeiDH Date: Tue, 28 May 2024 19:47:48 +0800 Subject: [PATCH] hdong: #65. --- .../Users/IUserService.cs | 2 ++ .../Users/Services/UserService.cs | 26 +++++++++++++++++++ .../Controllers/UserController.cs | 14 ++++++++++ 3 files changed, 42 insertions(+) diff --git a/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs b/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs index 8f314ffa..4071790c 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Users/IUserService.cs @@ -10,4 +10,6 @@ public interface IUserService Task ActiveUser(UserActivationModel model); Task GetToken(string authorization); Task GetMyProfile(); + Task VerifyUserUnique(string userName); + Task VerifyEmailUnique(string email); } \ No newline at end of file diff --git a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs index ae5220b9..19242e39 100644 --- a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs +++ b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs @@ -263,4 +263,30 @@ public class UserService : IUserService }; return token; } + + public async Task VerifyUserUnique(string userName) + { + if (string.IsNullOrEmpty(userName)) + return false; + + var db = _services.GetRequiredService(); + var user = db.GetUserByUserName(userName); + if (user == null) + return true; + + return false; + } + + public async Task VerifyEmailUnique(string email) + { + if (string.IsNullOrEmpty(email)) + return false; + + var db = _services.GetRequiredService(); + var emailName = db.GetUserByEmail(email); + if (emailName == null) + return true; + + return false; + } } diff --git a/src/Infrastructure/BotSharp.OpenAPI/Controllers/UserController.cs b/src/Infrastructure/BotSharp.OpenAPI/Controllers/UserController.cs index 317d1fc9..8228e594 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Controllers/UserController.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Controllers/UserController.cs @@ -94,4 +94,18 @@ public class UserController : ControllerBase } return UserViewModel.FromUser(user); } + + [AllowAnonymous] + [HttpPost("/user/unique/{username}")] + public async Task VerifyUserUnique([FromRoute] string userName) + { + return await _userService.VerifyUserUnique(userName); + } + + [AllowAnonymous] + [HttpPost("/email/unique/{email}")] + public async Task VerifyEmailUnique([FromRoute]string email) + { + return await _userService.VerifyEmailUnique(email); + } }