Adding structure to responses

This commit is contained in:
kdeng00
2023-09-29 19:09:17 -04:00
parent 192208fe2a
commit 4c232a500d
4 changed files with 62 additions and 20 deletions
+3 -8
View File
@@ -1,4 +1,3 @@
using System;
using System.Security.Cryptography;
using System.Text;
@@ -10,17 +9,13 @@ namespace TextSender_API.Controllers;
public class PasswordVerification
{
#region Fiends
private UsersRepository? _userRepo;
private SaltRepository? _saltRepo;
private UsersRepository _userRepo;
private SaltRepository _saltRepo;
private int _keySize = 64;
private int _iterations = 350000;
#endregion
#region Constructors
public PasswordVerification()
{
}
public PasswordVerification(UsersRepository userRepo, SaltRepository saltRepo)
{
this._userRepo = userRepo;
@@ -31,7 +26,7 @@ public class PasswordVerification
#region Methods
public bool VerifyPassword(User user, string password)
{
var salt = this._saltRepo.Retrieve(user.Id);
var salt = this._saltRepo.Retrieve(user.Id!);
var hashedPassword = this.HashPassword(user, salt, password);
return hashedPassword.Equals(user.Password);
+51 -5
View File
@@ -1,6 +1,7 @@
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using TextSender_API.Models;
using TextSender_API.Repositories;
@@ -30,6 +31,8 @@ public class UsersController : ControllerBase
[HttpPost("login")]
public IActionResult Login([FromBody] User userRequest)
{
var response = new LoginResponse();
try
{
var connString = this._config.GetConnectionString("MongoDBURI");
@@ -40,11 +43,12 @@ public class UsersController : ControllerBase
if (result.Item1 && pwdVerify.VerifyPassword(result.Item2, userRequest.Password!))
{
Ok(result.Item2);
response.Data.Add(result.Item2);
Ok(response);
}
else
{
return NotFound();
return NotFound(response);
}
}
catch (Exception ex)
@@ -52,12 +56,14 @@ public class UsersController : ControllerBase
this._logger.LogError($"An error occurred: {ex.Message}");
}
return Ok();
return Ok(response);
}
[HttpPost("register"), DisableRequestSizeLimit]
public IActionResult Upload([FromBody] User userRequest)
{
var response = new RegisterUserResponse();
try
{
var connString = this._config.GetConnectionString("MongoDBURI");
@@ -68,7 +74,7 @@ public class UsersController : ControllerBase
if (!result)
{
var pwdVerify = new PasswordVerification();
var pwdVerify = new PasswordVerification(userRepo, saltRepo);
var salt = pwdVerify.CreateSalt(userRequest);
var hashedPassword = pwdVerify.HashPassword(userRequest, salt);
@@ -77,6 +83,8 @@ public class UsersController : ControllerBase
userRequest.DateCreated = DateTime.Now;
userRepo.CreateUser(userRequest);
response.Data.Add(userRequest);
salt.UserId = userRequest.Id;
saltRepo.Create(salt);
}
@@ -90,7 +98,45 @@ public class UsersController : ControllerBase
this._logger.LogError($"An error occurred: {ex.Message}");
}
return Ok();
return Ok(response);
}
#endregion
#region Responses
public class LoginResponse
{
#region Properties
[JsonProperty("data")]
public List<User> Data { get; set; }
#endregion
#region Constructors
public LoginResponse()
{
this.Data = new List<User>();
}
#endregion
#region Methods
#endregion
}
public class RegisterUserResponse
{
#region Properties
[JsonProperty("data")]
public List<User> Data { get; set; }
#endregion
#region Constructors
public RegisterUserResponse()
{
this.Data = new List<User>();
}
#endregion
#region Methods
#endregion
}
#endregion
}