diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/Elements.Backend/Controllers/ElementController.cs | 19 | ||||
| -rw-r--r-- | backend/Elements.Backend/DTOs/ElementDTO.cs | 10 |
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 |
