From cf237f74a1ae8921b923337af5aa9eb062440147 Mon Sep 17 00:00:00 2001 From: Jeas0001 Date: Tue, 18 Mar 2025 13:36:48 +0100 Subject: [PATCH] Made some of the device endpoints --- backend/Api/Controllers/DeviceController.cs | 20 ++++++++++++ backend/Api/Controllers/UserController.cs | 7 +++-- backend/Api/DBAccess/DBAccess.cs | 34 +++++++++++++++++++-- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/backend/Api/Controllers/DeviceController.cs b/backend/Api/Controllers/DeviceController.cs index b673d0b..4bba046 100644 --- a/backend/Api/Controllers/DeviceController.cs +++ b/backend/Api/Controllers/DeviceController.cs @@ -7,9 +7,29 @@ namespace Api.Controllers [Route("api/[controller]")] public class DeviceController : Controller { + private readonly DBContext _context; + + public DeviceController(DBContext context) + { + _context = context; + } + + [HttpGet] public async Task GetDevices(int userId) { + DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context); + List devices = await dBAccess.GetDevices(userId); + if (devices.Count == 0) { return BadRequest(new { error = "There is no devices that belong to this userID" }); } + return Ok(devices); + } + + [HttpPost("adddevice/{userId}")] + public async Task AddDevice([FromBody] Device device, int userId) + { + DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context); + bool success = await dBAccess.AddDevice(device, userId); + if (!success) { return BadRequest(new { error = "This device already exist" }); } return Ok(); } diff --git a/backend/Api/Controllers/UserController.cs b/backend/Api/Controllers/UserController.cs index 0bf817a..1422628 100644 --- a/backend/Api/Controllers/UserController.cs +++ b/backend/Api/Controllers/UserController.cs @@ -13,6 +13,7 @@ namespace Api.Controllers { _context = context; } + [HttpPost("Login")] public async Task Login([FromBody] User user) { @@ -31,11 +32,11 @@ namespace Api.Controllers return Ok(); } - [HttpPut("Edit")] - public async Task EditUser([FromBody] User user) + [HttpPut("Edit/{userId}")] + public async Task EditUser([FromBody] User user, int userId) { DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context); - bool success = await dBAccess.EditUser(user); + bool success = await dBAccess.EditUser(user, userId); if (!success) { return BadRequest(new { error = "User can't be edited" }); } return Ok(); } diff --git a/backend/Api/DBAccess/DBAccess.cs b/backend/Api/DBAccess/DBAccess.cs index e4a0994..70331d9 100644 --- a/backend/Api/DBAccess/DBAccess.cs +++ b/backend/Api/DBAccess/DBAccess.cs @@ -23,6 +23,10 @@ namespace Api.DBAccess return false; } } + if (user.Devices == null) + { + user.Devices = new List(); + } _context.Users.Add(user); return await _context.SaveChangesAsync() == 1; @@ -37,12 +41,12 @@ namespace Api.DBAccess profile.Password = ""; return profile; } - return new User(); + return new User(); } - public async Task EditUser(User user) + public async Task EditUser(User user, int userId) { - var profile = await _context.Users.FirstAsync(u => u.Id == user.Id); + var profile = await _context.Users.FirstAsync(u => u.Id == userId); profile.UserName = user.UserName; @@ -52,5 +56,29 @@ namespace Api.DBAccess return await _context.SaveChangesAsync() == 1; } + + public async Task> GetDevices(int userId) + { + var user = await _context.Users.Include(u => u.Devices).FirstOrDefaultAsync(u => u.Id == userId); + + if (user == null || user.Devices == null) { return new List(); } + + var devices = user.Devices; + + return devices; + } + + public async Task AddDevice(Device device, int userId) + { + var user = await _context.Users.Include(u => u.Devices).FirstOrDefaultAsync(u => u.Id == userId); + + if (user == null || user.Devices == null) { return false; } + + if (device.Logs == null) { device.Logs = new List(); } + + user.Devices.Add(device); + + return await _context.SaveChangesAsync() == 1; + } } }