diff options
-rw-r--r-- | Backend/Api/Api/Api.csproj | 4 | ||||
-rw-r--r-- | Backend/Api/Api/Controllers/AuthController.cs | 36 | ||||
-rw-r--r-- | Backend/Api/Api/Interfaces/IUserService.cs | 2 | ||||
-rw-r--r-- | Backend/Api/Api/Models/User.cs | 14 | ||||
-rw-r--r-- | Backend/Api/Api/Program.cs | 11 | ||||
-rw-r--r-- | Backend/Api/Api/Services/UserService.cs | 9 |
6 files changed, 69 insertions, 7 deletions
diff --git a/Backend/Api/Api/Api.csproj b/Backend/Api/Api/Api.csproj index eeacb93..91e0755 100644 --- a/Backend/Api/Api/Api.csproj +++ b/Backend/Api/Api/Api.csproj @@ -11,8 +11,4 @@ <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> </ItemGroup> - <ItemGroup> - <Folder Include="Controllers\" /> - </ItemGroup> - </Project> diff --git a/Backend/Api/Api/Controllers/AuthController.cs b/Backend/Api/Api/Controllers/AuthController.cs new file mode 100644 index 0000000..b75bd6d --- /dev/null +++ b/Backend/Api/Api/Controllers/AuthController.cs @@ -0,0 +1,36 @@ +using Api.Interfaces; +using Api.Models; +using Microsoft.AspNetCore.Mvc; + +namespace Api.Controllers +{ + [Route("api/auth/")] + public class AuthController : Controller + { + private readonly IUserService _userService; + public AuthController(IUserService userService) + { + _userService = userService; + } + + public async Task<ActionResult<string>> Register([FromBody] Register creds) + { + //this is beyond scuffed and will be cleaned up later, when users,login and controllers are made + User novi = new User(); + novi.email = creds.email; + novi.password = creds.password; + novi.username = creds.username; + novi.name = creds.name; + novi.creationDate = DateTime.Now; + novi._id = ""; + + int ret= await _userService.createUser(novi); + if (ret == -1) + return BadRequest("email already exists"); + if (ret == -2) + return BadRequest("username already exists"); + + return Ok(); + } + } +} diff --git a/Backend/Api/Api/Interfaces/IUserService.cs b/Backend/Api/Api/Interfaces/IUserService.cs index 63fbd18..a2fa0a1 100644 --- a/Backend/Api/Api/Interfaces/IUserService.cs +++ b/Backend/Api/Api/Interfaces/IUserService.cs @@ -4,7 +4,7 @@ namespace Api.Interfaces { public interface IUserService { - Task createUser(User user); + Task<int> createUser(User user); Task<List<User>> getUsers(); Task<User> getUserByEmail(String email); Task<User> getUserByUsername(String username); diff --git a/Backend/Api/Api/Models/User.cs b/Backend/Api/Api/Models/User.cs index eb7d1e8..1d351d1 100644 --- a/Backend/Api/Api/Models/User.cs +++ b/Backend/Api/Api/Models/User.cs @@ -14,4 +14,18 @@ namespace Api.Models public String password { get; set; } public DateTime creationDate { get; set; } } + + public class Login + { + public String email { get; set; } + public String password { get; set; } + } + + public class Register + { + public String name { get; set; } + public String username { get; set; } + public String email { get; set; } + public String password { get; set; } + } } diff --git a/Backend/Api/Api/Program.cs b/Backend/Api/Api/Program.cs index 7ae8798..d00f39f 100644 --- a/Backend/Api/Api/Program.cs +++ b/Backend/Api/Api/Program.cs @@ -24,6 +24,17 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); +builder.Services.AddCors(options => +{ + options.AddPolicy("CorsPolicy", + builder => + builder + .AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader() + .AllowCredentials()); +}); + var app = builder.Build(); // Configure the HTTP request pipeline. diff --git a/Backend/Api/Api/Services/UserService.cs b/Backend/Api/Api/Services/UserService.cs index 264085c..fc582b5 100644 --- a/Backend/Api/Api/Services/UserService.cs +++ b/Backend/Api/Api/Services/UserService.cs @@ -14,10 +14,15 @@ namespace Api.Services } - public async Task createUser(User user) + public async Task<int> createUser(User user) { - await _users.InsertOneAsync(user); + if (await _users.Find(x => x.email == user.email).FirstOrDefaultAsync() != null) + return -1; //email already exists + if (await _users.Find(x => x.username == user.username).FirstOrDefaultAsync() != null) + return -2; //username already exists + await _users.InsertOneAsync(user); + return 1; } public async Task<User> deleteUser(string email) |