From cf00223fbf339757b3f1e5de144147eba9af3fa2 Mon Sep 17 00:00:00 2001 From: "branislav.radivojevic" Date: Thu, 27 Oct 2022 21:56:12 +0200 Subject: cors,auth controller,register --- Backend/Api/Api/Api.csproj | 4 --- Backend/Api/Api/Controllers/AuthController.cs | 36 +++++++++++++++++++++++++++ Backend/Api/Api/Interfaces/IUserService.cs | 2 +- Backend/Api/Api/Models/User.cs | 14 +++++++++++ Backend/Api/Api/Program.cs | 11 ++++++++ Backend/Api/Api/Services/UserService.cs | 9 +++++-- 6 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 Backend/Api/Api/Controllers/AuthController.cs (limited to 'Backend') 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 @@ - - - - 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> 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 createUser(User user); Task> getUsers(); Task getUserByEmail(String email); Task 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 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 deleteUser(string email) -- cgit v1.2.3