summaryrefslogtreecommitdiff
path: root/backend/Elements.Backend
diff options
context:
space:
mode:
authorPaweł Bernaciak <pawelbernaciak@zohomail.eu>2023-11-12 16:44:16 +0100
committerPaweł Bernaciak <pawelbernaciak@zohomail.eu>2023-11-12 16:44:16 +0100
commit32180f5b46fe594b01c40ca1d837734b1be894d6 (patch)
tree34716e125c63e6777a9f2f3876a617b1c5aa9670 /backend/Elements.Backend
parent024dc2736e7b422700a4ee48fb2b5022661c889e (diff)
Fix DTO inconsistency
Diffstat (limited to 'backend/Elements.Backend')
-rw-r--r--backend/Elements.Backend/Controllers/ElementController.cs19
-rw-r--r--backend/Elements.Backend/DTOs/ElementDTO.cs10
2 files changed, 25 insertions, 4 deletions
diff --git a/backend/Elements.Backend/Controllers/ElementController.cs b/backend/Elements.Backend/Controllers/ElementController.cs
index 2f57514..d916c47 100644
--- a/backend/Elements.Backend/Controllers/ElementController.cs
+++ b/backend/Elements.Backend/Controllers/ElementController.cs
@@ -1,5 +1,7 @@
using System.Buffers.Text;
using System.Text.Json;
+using System.Text.Json.Serialization;
+using Elements.Backend.DTOs;
using Elements.Data;
using Elements.Data.Models;
using Microsoft.AspNetCore.Http.HttpResults;
@@ -29,12 +31,12 @@ public class ElementController : ControllerBase
if (element == null)
return NotFound();
- var response = new
+ var response = new ElementDTO()
{
Id = element.Id,
Name = element.Name,
CreatorName = element.User.Name,
- State = element.State,
+ State = (int)element.State,
Icon = Convert.ToBase64String(element.IconPng)
};
@@ -51,13 +53,22 @@ public class ElementController : ControllerBase
if (!firstExists || !secondExists)
return BadRequest();
- Recipe? recipe = await _dbContext.Recipes.Include(r => r.ResultElement).FirstOrDefaultAsync(r =>
+ Recipe? recipe = await _dbContext.Recipes.Include(r => r.ResultElement).ThenInclude(element => element.User).FirstOrDefaultAsync(r =>
(r.FirstElementId == firstElementId && r.SecondElementId == secondElementId) ||
(r.FirstElementId == secondElementId && r.SecondElementId == firstElementId));
if (recipe == null)
return NotFound();
+ var response = new ElementDTO()
+ {
+ Id = recipe.ResultElement.Id,
+ Name = recipe.ResultElement.Name,
+ CreatorName = recipe.ResultElement.User.Name,
+ State = (int)recipe.ResultElement.State,
+ Icon = Convert.ToBase64String(recipe.ResultElement.IconPng)
+ };
+
var serializeOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
- return Ok(JsonSerializer.Serialize(recipe.ResultElement, serializeOptions));
+ return Ok(JsonSerializer.Serialize(response, serializeOptions));
}
} \ No newline at end of file
diff --git a/backend/Elements.Backend/DTOs/ElementDTO.cs b/backend/Elements.Backend/DTOs/ElementDTO.cs
new file mode 100644
index 0000000..9826c83
--- /dev/null
+++ b/backend/Elements.Backend/DTOs/ElementDTO.cs
@@ -0,0 +1,10 @@
+namespace Elements.Backend.DTOs;
+
+public class ElementDTO
+{
+ public int Id { get; init; }
+ public string Name { get; set; }
+ public string CreatorName { get; set; }
+ public int State { get; set; }
+ public string Icon { get; set; }
+} \ No newline at end of file