aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Api.csproj4
-rw-r--r--Backend/Api/Api/Controllers/AuthController.cs36
-rw-r--r--Backend/Api/Api/Interfaces/IUserService.cs2
-rw-r--r--Backend/Api/Api/Models/User.cs14
-rw-r--r--Backend/Api/Api/Program.cs11
-rw-r--r--Backend/Api/Api/Services/UserService.cs9
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)