All api endpoints done for now

This commit is contained in:
Jeas0001 2025-03-19 09:45:50 +01:00
parent 3a5b5545b3
commit e0a69c4828
16 changed files with 200 additions and 18 deletions

View File

@ -19,7 +19,7 @@ namespace Api.Controllers
public async Task<IActionResult> GetDevices(int userId)
{
DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context);
List<Device> devices = await dBAccess.GetDevices(userId);
List<Device> devices = await dBAccess.ReadDevices(userId);
if (devices.Count == 0) { return BadRequest(new { error = "There is no devices that belong to this userID" }); }
return Ok(devices);
}
@ -28,20 +28,26 @@ namespace Api.Controllers
public async Task<IActionResult> AddDevice([FromBody] Device device, int userId)
{
DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context);
bool success = await dBAccess.AddDevice(device, userId);
bool success = await dBAccess.CreateDevice(device, userId);
if (!success) { return BadRequest(new { error = "This device already exist" }); }
return Ok();
}
[HttpGet("logs/{userId}")]
public async Task<IActionResult> GetLogs(int userId)
[HttpGet("logs/{deviceId}")]
public async Task<IActionResult> GetLogs(int deviceId)
{
return Ok();
DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context);
List<TemperatureLogs> logs = await dBAccess.ReadLogs(deviceId);
if (logs.Count == 0) { return BadRequest(new { error = "There is no logs that belong to this deviceId" }); }
return Ok(logs);
}
[HttpPut("Edit")]
public async Task<IActionResult> EditDevice([FromBody] Device device)
[HttpPut("Edit/{deviceId}")]
public async Task<IActionResult> EditDevice([FromBody] Device device, int deviceId)
{
DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context);
bool success = await dBAccess.UpdateDevice(device, deviceId);
if (!success) { return BadRequest(new { error = "Device can't be edited" }); }
return Ok();
}
}

View File

@ -36,7 +36,7 @@ namespace Api.Controllers
public async Task<IActionResult> EditUser([FromBody] User user, int userId)
{
DBAccess.DBAccess dBAccess = new DBAccess.DBAccess(_context);
bool success = await dBAccess.EditUser(user, userId);
bool success = await dBAccess.UpdateUser(user, userId);
if (!success) { return BadRequest(new { error = "User can't be edited" }); }
return Ok();
}

View File

@ -44,7 +44,7 @@ namespace Api.DBAccess
return new User();
}
public async Task<bool> EditUser(User user, int userId)
public async Task<bool> UpdateUser(User user, int userId)
{
var profile = await _context.Users.FirstAsync(u => u.Id == userId);
@ -57,7 +57,7 @@ namespace Api.DBAccess
return await _context.SaveChangesAsync() == 1;
}
public async Task<List<Device>> GetDevices(int userId)
public async Task<List<Device>> ReadDevices(int userId)
{
var user = await _context.Users.Include(u => u.Devices).FirstOrDefaultAsync(u => u.Id == userId);
@ -68,7 +68,7 @@ namespace Api.DBAccess
return devices;
}
public async Task<bool> AddDevice(Device device, int userId)
public async Task<bool> CreateDevice(Device device, int userId)
{
var user = await _context.Users.Include(u => u.Devices).FirstOrDefaultAsync(u => u.Id == userId);
@ -80,5 +80,29 @@ namespace Api.DBAccess
return await _context.SaveChangesAsync() == 1;
}
public async Task<List<TemperatureLogs>> ReadLogs(int deviceId)
{
var device = await _context.Devices.Include(d => d.Logs).FirstOrDefaultAsync(d => d.Id == deviceId);
if (device == null || device.Logs == null) { return new List<TemperatureLogs>(); }
var logs = device.Logs;
return logs;
}
public async Task<bool> UpdateDevice(Device device, int deviceId)
{
var device1 = await _context.Devices.FirstAsync(u => u.Id == deviceId);
device1.TempLow = device.TempLow;
device1.TempHigh = device.TempHigh;
device1.ReferenceId = device.ReferenceId;
return await _context.SaveChangesAsync() == 1;
}
}
}

View File

@ -0,0 +1,125 @@
// <auto-generated />
using System;
using Api;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Api.Migrations
{
[DbContext(typeof(DBContext))]
[Migration("20250319082642_init3")]
partial class init3
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.3");
modelBuilder.Entity("Models.Device", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("ReferenceId")
.HasColumnType("TEXT");
b.Property<double>("TempHigh")
.HasColumnType("REAL");
b.Property<double>("TempLow")
.HasColumnType("REAL");
b.Property<int?>("UserId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Devices");
});
modelBuilder.Entity("Models.TemperatureLogs", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("Date")
.HasColumnType("TEXT");
b.Property<int?>("DeviceId")
.HasColumnType("INTEGER");
b.Property<double>("TempHigh")
.HasColumnType("REAL");
b.Property<double>("TempLow")
.HasColumnType("REAL");
b.Property<double>("Temperature")
.HasColumnType("REAL");
b.HasKey("Id");
b.HasIndex("DeviceId");
b.ToTable("TemperatureLogs");
});
modelBuilder.Entity("Models.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("Models.Device", b =>
{
b.HasOne("Models.User", null)
.WithMany("Devices")
.HasForeignKey("UserId");
});
modelBuilder.Entity("Models.TemperatureLogs", b =>
{
b.HasOne("Models.Device", null)
.WithMany("Logs")
.HasForeignKey("DeviceId");
});
modelBuilder.Entity("Models.Device", b =>
{
b.Navigation("Logs");
});
modelBuilder.Entity("Models.User", b =>
{
b.Navigation("Devices");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,28 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Api.Migrations
{
/// <inheritdoc />
public partial class init3 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "UnikId",
table: "Devices",
newName: "ReferenceId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "ReferenceId",
table: "Devices",
newName: "UnikId");
}
}
}

View File

@ -23,15 +23,15 @@ namespace Api.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("ReferenceId")
.HasColumnType("TEXT");
b.Property<double>("TempHigh")
.HasColumnType("REAL");
b.Property<double>("TempLow")
.HasColumnType("REAL");
b.Property<string>("UnikId")
.HasColumnType("TEXT");
b.Property<int?>("UserId")
.HasColumnType("INTEGER");

View File

@ -14,7 +14,7 @@ namespace Models
public double TempLow { get; set; }
public string? UnikId { get; set; }
public string? ReferenceId { get; set; }
public List<TemperatureLogs>? Logs { get; set; }
}

View File

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -14,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Models")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b194766464c5b95244bb2810b3fd923d8c01ca83")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3a5b5545b33eb0ee4938a4ca36601016bc01ed22")]
[assembly: System.Reflection.AssemblyProductAttribute("Models")]
[assembly: System.Reflection.AssemblyTitleAttribute("Models")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
c30361deef8ee2a3715fdf416de7a45b59b6945cd4769141783b0d576db2ee2f
439a6f24c00f0a2eea4802134687ecf84955f031778bf6ac98624db0a88ddbae

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB